请教一个很菜的问题?

yasmong 2003-10-10 09:07:17
for(;(c=getchar()!='\n';) printf("%c",c);
输入computer,为什么不输出字符c而是输出computer呢?.
...全文
34 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cy0414 2003-10-11
  • 打赏
  • 举报
回复
很简单的一个问题,你是不断的在循环printf,而你输入的是一个语句,不段的循环下去不就相当与你的getchar()读入了很多个字符了吗???
那样,当然在执行的时候显示的是computer咯```,要是你输入的更多,那显示的就更多咯```
Depress 2003-10-11
  • 打赏
  • 举报
回复
for(;;)是一个循环体
getchar()每次读入一个字符
然后执行下一条语句printf(),所以输出的是一个字符串。
BestYunnan201 2003-10-11
  • 打赏
  • 举报
回复
大家都说了
是个循环!所以要在你碰到\n时才停止循环
loveyou19840806 2003-10-10
  • 打赏
  • 举报
回复
我同意大家的看法,不过我建议大家得到一个字符的时候最好不要这样。
yulongcn 2003-10-10
  • 打赏
  • 举报
回复
for(;;)是一个循环体,getchar()每次读入一个字符,比如说读入'c','c'!='\n',所以再次执行for()循环体,读入第二个字符'o',如此循环,直到输入字符'/n',然后执行下一条语句printf(),所以输出的是一个字符串。
TianGuangZao 2003-10-10
  • 打赏
  • 举报
回复
区别在于:
c=getchar(); 是一条语句。
for(i=1;i<=2;) c=getchar(); 是个循环语句,其中 c=getchar() 执行两次。

请楼主注意,c 是变量,不是字符常量。
yasmong 2003-10-10
  • 打赏
  • 举报
回复
那c=getchar();
c=getchar();

for(i=1;i<=2;) c=getchar();
有什么区别呢?
daizh 2003-10-10
  • 打赏
  • 举报
回复
c=getchar()从输入流中读一个字符,它!='\n'所以执行printf("%c",c);如此循环知道读到'\n',循环终止。所以是输出computer而不是输出字符c
sttony 2003-10-10
  • 打赏
  • 举报
回复
printf("%c",c)是循环体!
made_in_ 2003-10-10
  • 打赏
  • 举报
回复
因为for(;(c=getchar()!='\n';)这句是个循环语句,只有在你敲下回车键后才终止。
如果你输入字符“c”后就回车,就明白了。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧