用scanf_s判断输入数据是否合法

对用户输入的整数进行求和。当用户输入任意字符时,结束程序并打印结果。

A. 用户可以输入整数和浮点数

B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分隔符(如下图)

C. 结果保留两位小数

答:要求 A 不难实现,统一将用户输入的数转换为浮点型即可(整数到浮点型的转换是无损的);要求 B 则需要我们检测用户是输入了数字之后是否按下了回车(检测是否存在换行符)。因此,我们需要嵌套一个内循环来处理那些一行包含多组数字的情况。

用scanf_s判断输入数据是否合法-时光屋

代码实现:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
float num = 0;
double sum = 0;
int status;
do
{
cout << “请输入合法的数字:”;
do
{
sum += num;
status = scanf_s(“%f”, &num);
}
while (getchar() != ‘\n’&& status == 1);
}
while (status == 1);
cout << “结果是:” << sum << endl;

system(“pause”);
return 0;
}

scanf_s函数会返回成功接收字符的个数,所以我们只需检查每次调用 scanf_s函数的返回值是否为 1 即可。

————下载必看————

1、资源通过互联网渠道公开获取,仅供阅读测试,请在下载后24小时内删除,谢谢合作!
2、本站解压密码统一为:yudouyudou
3、本站微信客服/失效补发:rsst58
4、若版权方认为本站侵权,请联系发邮件至(rsstime@qq.com)处理。
5、关于下载,播放声音字幕,解压等问题,请点击查看>>常见问题
时光屋 » 用scanf_s判断输入数据是否合法

发表评论

至臻视听_发烧收藏

会员介绍 常见问题