用scanf_s判断输入数据是否合法
2024-10-20 15:47:11
用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 即可。
最新文章
- 隐马尔科夫模型python实现简单拼音输入法
- swift---不同字体大小不同颜色label富文本设置
- ACM 找球号(一)
- NOIp 2013 #2 花匠 Label:爆0的Water
- OpenStack 二次开发环境和开发工具的选择
- [安卓]应用程序资源(App Resources)
- docker RESTful API
- js 定位到某个锚点
- VS2010开发环境最佳字体及配色[转]
- cloudstack安装篇2-主机名配置
- java数组遍历——iterator和for方法
- 外观模式之C++实现
- Mod_Python中文文档
- Android Matrix(坐标矩阵)
- mysql配置主从数据库
- .net程序实现给机器加域,添加域账号到本地管理员
- Android官方技术文档翻译——Gradle 插件用户指南(6)
- 基于E-R模型的关系型数据库设计方法
- Oracle设置主键自增
- SPOJ DIVCNT2