关于scanf的返回值
2009-02-17 06:27
274 查看
#文章部分内容摘自《C primer plus》
scanf()函数返回成功读入的项目的个数。如果它没有读取任何项目(当它期望一个数字而你却键入了一个非数字字符串就会发生这种情况),scanf()会返回0。当它检测到“文件结尾”,它返回EOF,一般EOF值为-1。利用scanf()的返回值,可以检测和处理不匹配的输入。
例如,你想在输入数字时执行while循环,其他字符时跳出。则可这样写:
而当scanf未能读取指定形式的输入时,它就留下这个不相容的输入,以供下次读取。
看下面这个程序:
当你输入f 1 2时,即使后面两个对应的输入类型是对的,当由于第一个类型错误,导致后面将一直读取f,所以输出值为0。
scanf()函数返回成功读入的项目的个数。如果它没有读取任何项目(当它期望一个数字而你却键入了一个非数字字符串就会发生这种情况),scanf()会返回0。当它检测到“文件结尾”,它返回EOF,一般EOF值为-1。利用scanf()的返回值,可以检测和处理不匹配的输入。
例如,你想在输入数字时执行while循环,其他字符时跳出。则可这样写:
float a; while (scanf("%f", &a) == 1) { ; }
而当scanf未能读取指定形式的输入时,它就留下这个不相容的输入,以供下次读取。
看下面这个程序:
#include <stdio.h> int main(void) { int a, b, c; printf ("%d",scanf ("%d %d %d", &a, &b, &c)); return 0; }
当你输入f 1 2时,即使后面两个对应的输入类型是对的,当由于第一个类型错误,导致后面将一直读取f,所以输出值为0。
相关文章推荐
- C语言中关于scanf()函数返回值问题
- 关于eof和scanf返回值
- 关于scanf的返回值
- 关于scanf()返回值为-1
- PAT B1009 说反话 关于scanf和其返回值EOF的应用
- 关于scanf返回值
- WHU-关于Scanf_s 返回值的Hint
- 关于库函数中scanf函数有返回值以及如果停止运行的方法(windows和linux)
- 关于scanf的返回值
- 关于JAVA的try catch finally的return返回值问题
- 关于线程的参数、“返回值”、及线程的中止
- 关于SCANF接受的一些总结
- 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
- 由scanf说起之1:scanf函数和回车、空格 及其返回值
- 关于$.ajax 返回返回值问题
- 关于scanf要写两次的问题
- 关于C++一些常用函数的说明(scanf,fabs,abs)
- 关于函数返回值的几种情况
- C程序缓冲输入流关于getchar()与scanf()的思考
- Jquery关于ajax中无法在success中获取返回值的问题