如下面给数组赋值.int mian(){ int a[10]; int i; for (i =0; i<10; i++) { scanf("%d", &a[i]) } return 0;}如果实现,如果输入的是字母,让用户重新输入当前元素或输入 数字 空格 数字 留下的缓存如何清除,不影响下个元素的输入.求大神帮帮忙.
2 回答
已采纳
qq___524
TA贡献171条经验 获得超74个赞
实现,如果输入的是字母,让用户重新输入当前元素
这个比较好实现,根据scanf的返回值来判断输入的是不是数字,如果scanf返回1,则输入的是数字,如果返回值是0,则输入的不是数字。可以用一个整型变量存放scanf的返回值,然后根据scanf的返回值来进行下一步操作。(注:scanf的返回值是成功输入的个数,如果输入的是数字,则成功输入1个变量,返回1. 如果输入的是字母,则这次未成功输入,返回的是0)
输入 数字 空格 数字 留下的缓存如何清除,不影响下个元素的输入.
一种方法是,scanf("%d", &a[i]);后面加上一个gets(str);其中str是一个字符数组的名字,把数字后面所有的内容全部输入到str里面。另一种方法是scanf("%d", &a[i]);后面加上一个fflush(stdin);清空输入缓冲区内容
- 2 回答
- 0 关注
- 1639 浏览
添加回答
举报
0/150
提交
取消