c语言 一个关于输入的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 19:59:10
是不是输入一串字符时,按回车把字符输到缓冲区时在最后加上了一个\N?
应为 while((c=getchar())!='\n')
{
printf("%c",c);
}

是在遇到换行符才结束.那一定是系统自己在我输的一串数后加了换行符?

还有为什么我去掉((c=getchar())的括号,变成while(c=getchar()!='\n')
输出结果不正确?
那为什么scanf("%s",c),输入CHINA系统在后面+的是\0 而不是\N?
%S 和&C系统对他们所加的不一样?

是你输入回车以后才输入 那个就是\n
还有为什么我去掉((c=getchar())的括号,变成while(c=getchar()!='\n')

因为!=优先级高于=
如果不加括号 则先做 != 把0或1给c

c=getchar()!='\n'
(c=getchar())!='\n'

不一样 ,= 是右运算

支持上楼的....

>>
回车键的字符就是“\n”,当你按回车键的时候就是给你输入的字符增加了“\n”,当程序读取到这个\n的时候正好结束循环;同时回车还有结束输入的功能。
>>
!=的优先级高于=

!=的优先级高于=