C语言scanf用法
问题补充说明: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从标准输入流抽取数据时,如果按照您的写法是会围氧香厚特领抛弃那个回车的。
所以您读取的东西永远不是回车,而成功赋值的变量数非零即一,和'\n'的值亦均不同。
您有试过终止循环吗?没有吧,试过肯定也失败了吧。
请按楼上所述来写,这个写法很精妙,还利用了&&的”短路倒“思想呢。
抄一遍:(scanf("%c",&ch)&&ch!='\n')
标签:C语言,scanf,用法