首页 > 代码库 > scanf控制用户输入数据的合法范围_算法_c语言
scanf控制用户输入数据的合法范围_算法_c语言
如题:
要求用a,b,c三个整型变量来存储用户户输入3个值。
看程序实现:
#include <stdio.h> int main() { int a = 0, b = 0, c = 0; while( (a * b *c < 1 && (a<1 || b<1 || c<1)) &&( scanf("%d%d%d", &a, &b, &c ) <= 3)) { fflush(stdin); }; printf("%d %d %d\n", a, b, c); return 0; }
scanf函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d
灵活运用scanf的返回值可以使用用户输入的数据更有效,不会因为输入时出现错误而导致整个程序不能运行。
使用while循环获取用户输入,当不符合条件时,再次获取数据。直到用户输入的数据有效再停止,
在循环读取中,使用 fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
注:一个好的算法设计要保证程序的鲁棒性强,有时能在数据有瑕疵的情况下仍能给出正确结果。
scanf控制用户输入数据的合法范围_算法_c语言
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。