while((ch=getchar())!=EOFch != '\n');消除非法输入
第一个程序接收用户输入的两个整数并打印
#include <stdio.h>
int main() {int a, b;printf("请输入两个正整数:\n");scanf("%d", &a);scanf("%d", &b);printf("a = %d\nb = %d\n", a, b);return 0;
}
如果输入 123 和 456,程序可以正常运行;而如果输入了123asd 和 456(实际上敲第一次回车后就结束了,根本没机会输入第二个值),那么第一个数被赋值为123,第二个数是一个垃圾值。
这是因为,scanf函数对输入值进行转换时,它只读取需要的字符,a读取了123;输入行包含的最后一个值的剩余部分仍会留在那里,等待被读取。然后asd被b读取了,b就是一个垃圾值。
在两个scanf之间插入一条语句while ((ch = getchar()) != EOF && ch != '\n');
可以消除非法输入。
#include <stdio.h>
int main() {int a, b;int ch; // 定义一个整型变量接收非法输入printf("请输入两个正整数:\n");scanf("%d", &a);while ((ch = getchar()) != EOF && ch != '\n'); // 空循环,读取输入流内的剩余内容scanf("%d", &b);printf("a = %d\nb = %d\n", a, b);return 0;
}
while((ch=getchar())!=EOFch != '\n');消除非法输入相关推荐
- getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析...
2013-07-18 21:35:58 getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析. char是字符型数 ...
- C语言由scanf(“%d“,)非法输入字符造成的死循环及其解决方案
声明:此文章仅作为C语言学习历程中的思路整理,用于解决入门阶段较为浅显的问题,如有错误还请指正. IDE:小熊猫 Dev-C++ 现象描述: 代码要求实现用户输入1或2,通过scanf("% ...
- c语言表达ch是大写英文字母,C语言:将小写字母转换为大写字母。 1.倒数第三行:while ((ch=getchar())!='\n') 怎么理解呢?...
C语言:将小写字母转换为大写字母. 1.倒数第三行:while ((ch=getchar())!='\n') 怎么理解呢? 答案:4 信息版本:手机版 解决时间 2019-10-06 13:38 已 ...
- 详解while((ch = getchar()) != EOF)
问题 博主在学习C语言的过程中,遇到了这么一条语句 int ch; while((ch = getchar()) != EOF) putchar(ch); 其运行如下图所示 第一行是我的键盘输入:I ...
- Java黑皮书课后题第4章:*4.15(电话键盘)电话上的国际标准字母/数字映射如下所示。编写程序,提示用户输入一个小写或大写字母,然后显示对应数字。对于非字母输入,提示非法输入
*4.15(电话键盘)电话上的国际标准字母/数字映射如下所示.编写程序,提示用户输入一个小写或大写字母,然后显示对应数字.对于非字母输入,提示非法输入 题目 题目概述 运行示例 破题 代码 题目 题目 ...
- Java黑皮书课后题第4章:*4.13(判断元音还是辅音)编写程序,提示用户输入一个字母,判断该字母是元音还是辅音。对于非字母的输入,提示非法输入
*4.13(判断元音还是辅音)编写程序,提示用户输入一个字母,判断该字母是元音还是辅音.对于非字母的输入,提示非法输入 题目 题目概述 运行示例 破题 代码 题目 题目概述 *4.13(判断元音还是辅 ...
- Java黑皮书课后题第4章:*4.11(十进制转十六进制)编写程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数。对于不正确的输入数字,提示非法输入
*4.11(十进制转十六进制)编写程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数.对于不正确的输入数字,提示非法输入 题目 题目概述 运行示例 破题 代码 题目 题目概述 *4.11 ...
- 使用parseInt转换规范非法输入
在上一篇文章中,我们讲解了如何运用测试用例以及去应用,但是考虑到用户可能的一些非法输入导致的问题,我们需要对这些问题想一个好的解决方案. 在这里我们运用parseInt函数来将string类型的字符转 ...
- Linux下批量把GDK编码的文章转化为UTF-8编码的文章以及“iconv: 未知 xxx 处的非法输入序列”错误处理
Linux下批量转换GBK文件到UTF-8编码方法 查看文件编码 file -i filename 1.递归转换(包括子文件夹) find default -type d -exec mkdir -p ...
最新文章
- hbase查询_【从零单排HBase】HBase高性能查询揭秘
- .NET中Redis安装部署及使用方法简介附-开源Redis操作辅助类
- netty大白话--概念(二)
- 集群tomcat+session共享
- 准备 macvlan 环境 - 每天5分钟玩转 Docker 容器技术(54)
- 深度学习在图像检索的应用
- CentOS 7 + PostgreSQL + PostGIS + GeoServer安装
- 北京2018积分落户名单
- c语言次方函数,C 求n次方函数
- AI芯片:Edge TPU(谷歌出品)【在边缘(edge)设备上运行的“专用集成芯片”】【量化操作:Edge TPU使用8 位权重进行计算,而通常使用32位权重。所以我们应该将权重从32位转换为8位】
- java验证码提交错误时_验证码输入错误后自动刷新验证码
- java应届毕业生面试技巧
- H - Shifting Sort
- 2011天涯上令人心酸至极的微瞬间
- 服务器虚拟化 魔力象限,Magic Quadrant for x86 Server Virtualization (魔力象限x86服务器虚拟化).pdf...
- renderjs的使用
- 4张图搞懂Salesforce的认证体系(附新手考证攻略)
- 【学习笔记】群论入门
- 【无线串口模块应用实例】防小人不防君子的智慧安防监测系统
- 金蝶K3与AUTOCAD2007兼容性,打开金蝶K3时候提示配置问题
热门文章
- 虚拟服务器启动顺序,认识VPC2007的虚拟机系统启动顺序
- ftp服务器网页空白,ftp服务器网页空白
- DL之self-attention:self-attention自注意力机制的简介、应用之详细攻略
- DL:深度学习模型概览(包括DNN、CNN、RNN等)的简介、网络结构简介、使用场景对比之详细攻略
- Py之lightgbm:lightgbm的简介、安装、使用方法之详细攻略
- Ubuntu之GCC:GCC编译器的简介、安装、使用方法之详细攻略
- 成功解决打包时不能import自定义的包或库出现运行exe时No module named 缺少包
- 05-配置数据库的远程连接 创建hive数据库的时候要选择latin1
- 使用ANY和ALL条件
- git的简单操作命令