scanf()的返回值

scanf()函数返回成功读取的项数。如果没有读取任何项,且需要读取一个数字而用户却输入一个非数值字符串,scanf()便返回0。当scanf()检测到“文件结尾”时,会返回EOF(EOF是stdio.h中定义的特殊值,通常用 #define指令把EOF定义为-1)

3.补充:printf()和scanf()的*修饰符

printf()和scanf()都可以使用*修饰符来修改转换说明的含义。但是,它们的用法不太一样。

(1)printf()的*修饰符

例如:可以用修饰符代替字段宽度。但还是要用一个参数告诉函数,字段宽度应该是多少。 也就是说,如果转换说明是%d,那么参数列表中应包含*和d对应的值。这个技巧也可用于浮点值指定精度和字段宽度。

scanf(“%d”,&width);
printf(“The number is :%*d:\n”, width, number);

(2)scanf()的*修饰符

scanf()中*的用法与此不同。把*放在%和转换字符之间时,会使得 scanf()跳过相应的输出项。例如:

scanf(“%*d %*d %d”, &n);
//输入:
2013 2014 2015

会跳过两个整数,把第3个整数拷贝给n。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《scanf()的返回值》
文章链接:https://zhuji.vsping.com/6471.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。