首页 > 其他 > 详细

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

时间:2021-05-16 14:10:36      阅读:12      评论:0      收藏:0      [点我收藏+]

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

对用户输入的整数进行求和。当用户输入任意字符时,结束程序并打印结果。
A. 用户可以输入整数和浮点数
B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分隔符(如下图)
C. 结果保留两位小数
答:要求 A 不难实现,统一将用户输入的数转换为浮点型即可(整数到浮点型的转换是无损的);要求 B 则需要我们检测用户是输入了数字之后是否按下了回车(检测是否存在换行符)。因此,我们需要嵌套一个内循环来处理那些一行包含多组数字的情况。
代码实现:

#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 即可。

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

原文:https://www.cnblogs.com/Adalight/p/14773299.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!