工科男 发表于 2016-7-28 15:49:26

getchar函数的困惑

本帖最后由 工科男 于 2016-7-28 16:02 编辑


我困惑的地方在于:
如果我写成
c=getchar();
        while(c!='\0')

整个程序就会陷入死循环状态。
如果我写成

        while((c=getchar())!='\0')
则程序就会正确执行。

所以我对这一点就很纳闷了,,当输入语句放到 while 语句内就可以正确执行,放到 while 语句外面就错误了。问题出在哪里了; 求解

倾天 发表于 2016-7-28 18:33:37

兄弟
//假设我输入abc
c=getchar();               //这是读取一个字符,读取到 a
      while(c!='\0')   // 这就相当于while( 'a' != '\0'),因为c一直没变,一直都是a,所以一直循环

//----------------------
while((c=getchar())!='\0')       //这样的话就是每次循环都重新读取一次字符,第一次是a,第二次b,第三次c,然后就是'\0',然后循环不成立,就结束循环了

工科男 发表于 2016-7-29 20:08:23

倾天 发表于 2016-7-28 18:33
兄弟
//假设我输入abc
c=getchar();               //这是读取一个字符,读取到 a


听你这么说,我终于理解了,谢谢啊{:5_106:}

cosmosh73 发表于 2016-8-24 11:16:37

看看
页: [1]
查看完整版本: getchar函数的困惑