一个关于C语言的输入问题是不是输
应该分清楚getchar和scanf对输入的处理, 同样对按回车键, getchar会把'\n'输入到缓冲区,而scanf对回车理解为结束输入(如同按空格),不把'\n'传入缓冲。 所以,我觉得如果这样写是可以的:
char c;
while ((c=getchar())!='\n')
printf("%c", c);
而对c字符数组, 如char c[100]; 编译器对越界不会作检查,使用时为了知道在何处结束,它会加上一个'\0'在末尾,这样的话,如果判断是否结束的话就应该用 != '\0' 了。
应该分清楚getchar和scanf对输入的处理, 同样对按回车键, getchar会把'\n'输入到缓冲区,而scanf对回车理解为结束输入(如同按空格),不把'\n'传入缓冲。
所以,我觉得如果这样写是可以的:
char c;
while ((c=getchar())!='\n')
printf("%c", c);
而对c字符数组, 如char c[100]; 编译器对越界不会作检查,使用时为了知道在何处结束,它会加上一个'\0'在末尾,这样的话,如果判断是否结束的话就应该用 != '\0' 了。收起