scanf和cin的返回值】的更多相关文章

需要连续从标准输入读取数据时,可以采用下面两种不同的方式判断文件结束: [cpp] view plaincopy   int i; while(scanf("%d",&i) != EOF){do whatever...} while(cin >> i){do whatever...} 首先看scanf,当成功读取时返回读取的项的数目,如:scanf("%d %d",&i,&j)返回2,scanf("%d %f %s&qu…
cin是C++的标准输入流,其本身是一个对象,并不存在返回值的概念. 不过经常会有类似于 while(cin>>a) 的调用,这里并不是cin的返回值,应该关注">>"输入操作符,其实是它到底返回了什么 ">>"操作重载函数istream& operator>>(istream&, T &);的返回值,其中第二个参数由cin>>后续参数类型决定. 其返回值类型为istream&…
例: int main() { int a,b; while(cin >> a >> b) cout << a+b << endl; } 首先,cin是个对象,没有所谓返回>>输入操作符返回流对象的引用,cin >> x 返回istream&,cout << x返回oostream& if可直接判断流,如if (cin)while间接判断,如while (cin >> x)若流被标记错误(读取失…
1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量): 如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量). 2) 0,表示用户的输入不匹配,无法正确输入任何值.如上例,用户如果输入",3 4",返回0. 3)…
今天在看c++primer的时候,读到其中这样一段话: When we use an istream as a condition, the effect is to test the state of the stream. If the stream is validthat is, if it is still possible to read another input then the test succeeds. An istream becomes invalid when we…
1. scanf 函数是有返回值的,它的返回值可以分成三种情况  1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b);       如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量):      如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量).   2) 0,表示用户的输入不匹配,无法正确输入任何值.如上例,用户如果输入",3 4…
printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数.即在下面程序中scanf的返回值为1.如果没有读取任何项目(如它期望一个数字但是出入了一个非数字字符),它会返回值0.当它检测到“文件结尾”时,它返回EOF(EOF是文件stdio.h中定义的特殊值.一般,#define 指令把EOF 的值定义为 -1).    int n;     float …
今天写一个小程序时误用while(scanf("%d",&b)!=a),以为scanf的返回值就是输入的值. 其实真相是: scanf返回接收到的变量值的个数. int a,b,c. a 1进去时,试图用字符'a'对a赋值,肯定是错的,于是退出,返回成功接收到赋值的个数 0. 1 a进去时,首先a能获取1.但b不能获取'a',于是返回只是1 如果是 1 1的话,那就都成功,返回2即返回值应为正确输入的个数,毕竟人家是输入函数嘛.…
在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法: 此时它将返回1视为我输入成功,如果不为1则视为输入失败.那到底scanf的返回值具体指的是什么呢? 例子1: void main() { int a;int b;int c;printf("请输入三个整数:");int x=scanf("%d%d%d",&a,&b,&c);printf("%d/n%d/n",a,x);} 运行…
如: scanf("%d%d",&a,&b); 1.如果a和b都被成功读入,则scanf的返回值为2 2.如果只有a被成功读入,那么返回值为1 3.如果a和b都未被成功读入,那么返回值就为0 4.如果遇到错误或遇到end of file,返回值为EOF…