Printf和scanf无法正常工作? C程序设计

时间:2018-10-31 01:46:30

标签: c printf user-input

我有一个向用户询问用户变量和用户编号的函数。

void numReplace(char infix[50])
{
    char userVar;
    int userNum;

    printf("Please enter the variable you want to change\n"); 
    scanf("%c", &userVar);

    printf("Please enter the replacement value for the variable\n"); 
    scanf("%d", &userNum);

    printf("%c %d", userVar, userNum);

    int i=0;
    char chrr;
    infix[50] = '\0';
    while((chrr=infix[i++])!='\0')
    {
            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

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

2 个答案:

答案 0 :(得分:0)

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

这是使用<enter>时按scanf()后悬挂的换行符的解决方法。

有关更多信息,请参见此FAQ

答案 1 :(得分:0)

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