读“返回”作为字符

时间:2014-03-20 00:48:29

标签: c visual-studio-2010

尝试教学生如何在C中使用scanf / printf语句。我意识到这种方法已经过时,但必须从某处开始。此外,Visual Studios是大学的标准

我们的代码如下所示

#include<stdio.h>

int main()
{
     char b = '';
     scanf(%c, &b);
     printf("%c", b);
     return 0;

}

然而,它正在读取“返回”作为b的字符。 我不熟悉Visual工作室,因为我试图避免它。 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

几个想法。

首先,发布的程序中的错误已经指出。

其次,scanf的引言没有完整,但没有涵盖返回数字匹配输入的事实。

最后,返回字符是有效字符。该程序将获取输入的第一个字符,因此如果您只输入\n,则scanf会准确地获取它。 (编辑:添加输入的字符的整数等效输出以强调此点。)

#include<stdio.h>

int main()
{
     char b;
     if( scanf("%c", &b) == 1){
        printf("Entered char # %i: %c\n", (int)b, b);
        return 0;
     }
     else {
            return 127;
     }
}