我有一个函数,要求用户提供用户变量和用户编号。
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()
的换行符。