Printf和scanf工作不正常?C编程



我有一个函数,要求用户提供用户变量和用户编号。

void numReplace(char infix[50])
{
char userVar;
int userNum;
printf("Please enter the variable you want to changen"); 
scanf("%c", &userVar);
printf("Please enter the replacement value for the variablen"); 
scanf("%d", &userNum);
printf("%c %d", userVar, userNum);
int i=0;
char chrr;
infix[50] = '';
while((chrr=infix[i++])!='')
{
if (chrr == userVar){
chrr = userNum;
}
}
}

运行程序时,应该询问userVar和userNum。但是输出是:

Please enter the variable you want to change
Please enter the replacement value for the variable
1
1

它只接受一个变量,我认为我的代码没有问题。有人能帮我吗?

尝试在每次调用scanf()后添加一个getchar();

这是在使用scanf()时按<enter>后出现悬空换行符的一种解决方法。

有关更多信息,请参阅此常见问题解答。

uservar可能已收到您上次输入的n。如果您在此输入之前有输入,请接受带有getchar()的换行符。

相关内容

  • 没有找到相关文章

最新更新