问题补充说明:scanf可以作为判断条件例如: int a; while(scanf ("%d", &a) == 1) { 语句; }在这里只要输入的值是int型就能进入循环,我输入个2或者3都能进入循环 但是又遇到了 char ch; while (scanf("%c", &ch) != '\n') { 语名 }在这里要求输入的值不是回车... scanf可以作为判断条件例如:int a;while(scanf ("%d", &a) == 1){语句;}在这里只要输入的值是int型就能进入循环,我输入个2或者3都能进入循环但是又遇到了char ch;while (scanf("%c", &ch) != '\n'){语名}在这里要求输入的值不是回车才能循环,上边的是只要输入类型符合条件就行,下边的是输入的内容符合条件才行,想问的是scanf的返回值到底是什么 展开 新手自学,可能问的问题有点蠢,请见谅。。。
恕我直衡续互缺神继白请两言,您的方法能用恐怕是一个巧合。
在scanf从标准输入流抽取数据时,如果按照您的写法是会抛弃那个回车的。
所以您读取的东西永远不是回来自车,而成功赋值的变量数非360问答零即一,和'\n掉片责南凯干半华章计'的值亦均不同。
您有试过终止循环吗?没有吧,试过肯定也失败了吧。
请座检所准只掉迫效若按楼上所述来写,这个写法很精妙,还利用了&&的”短路“思想呢。
抄一遍:(scanf史消艺推血序房宜("%c",&ch)&&ch!较待='\n')