社区
C语言
帖子详情
用 cin 输入数据是为什么不够强壮????
metero
2003-01-07 01:41:27
#include <iostream>
#include <conio.h>
void main()
{
int i;
for(;;)
{
cin >> i ;
cout << i << endl;
}
getch();
}
为什么不能输入第二个数据?
为什么在输入字符时不能退出?
...全文
86
37
打赏
收藏
用 cin 输入数据是为什么不够强壮????
#include #include void main() { int i; for(;;) { cin >> i ; cout << i << endl; } getch(); } 为什么不能输入第二个数据? 为什么在输入字符时不能退出?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
37 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JoshuaLi
2003-03-03
打赏
举报
回复
该问题已经结贴
// cin 面向(又是这个单词)单词,用cin.getline()
ao
2003-01-19
打赏
举报
回复
问题都解决了,怎么还不结贴啊??
softworm163
2003-01-16
打赏
举报
回复
这个问题我在C++ PRIMER PLUS里看过,
它还深入不少东东,
可惜半月没看了,忘了
ao
2003-01-16
打赏
举报
回复
同意菜鸟叽叽!
Firstbyte
2003-01-16
打赏
举报
回复
这个问题......
SwordMan2001
2003-01-16
打赏
举报
回复
要健壮,就要以复杂来换取,试试把cin>>i那一句改为
while(! (cin>>i)){
cin.seekg(0, ios::beg);
cin.clear();
cout<<"Input error, please input again:";
}
sea_lover
2003-01-15
打赏
举报
回复
你的错误前面的兄弟说的已经很清楚了,不再说了!
for(;1;)这样一定行!
-------------------------------------------
【◇SeaLover◆〗
/ \
★---CSDN---☆
\ /
【○Trust Me●〗
thememory
2003-01-15
打赏
举报
回复
#include <iostream>
using namespace std;
int main()
{
int i;
while(1)
{
cin >> i;
if(!cin)break;
cout << i << endl;
}
return 0;
}
try this
rushman
2003-01-15
打赏
举报
回复
可以这样
cin.clear();//一般这样做比较可靠。
cin.ignore(n,'\n');/忽略n个字符,直到'\n',当然也可以不是'\n'
metero
2003-01-15
打赏
举报
回复
谢谢rushman(一线天)。
我始终想找出方法来避免这个问题。
alan118
2003-01-09
打赏
举报
回复
studying
danceflash
2003-01-09
打赏
举报
回复
To: metero(天不赋我唯有勤)
用"scanf()"实现的输入模块:
#include <stdio.h>
void main()
{
int i; //待输入整数
int in; //scanf()函数返回值记录
/***************** Begin ************************/
do{
in = scanf( "%d", &i ); //scanf()函数读入失败时返回0
if( in == 0 ) //若返回值为0,表示读入失败
getchar(); //读入失败则用getchar()函数清除缓冲区(每次只能清除一个字符)
}while( in == 0 ); //读入失败就循环读入
/***************** End ***********************/
printf( "i = %d\n", i );
}
不好意思,模块有点儿长,又懒得优化了,嘿嘿~~~
danceflash
2003-01-09
打赏
举报
回复
To: metero(天不赋我唯有勤)
昨天晚上没来,关于cin的用法我没有研究过,这两天也没有时间了
只能给你一个"scanf()"的输入模块,保证可以使用,使我以前编程的时候用的,你拿去试试看^_^
luixui
2003-01-09
打赏
举报
回复
郁闷
metero
2003-01-09
打赏
举报
回复
怎么样做呢?
你的程序是在什么环境下运行通过的?
metero
2003-01-09
打赏
举报
回复
非常感谢chinajiji(菜鸟叽叽) !
但问题还是一样。
如果我输入一个字符,比如说"A",然后,它就不断地输出cout << "wrong input format! input again:" << endl;
我在BC3.1下运行的。
rushman
2003-01-09
打赏
举报
回复
所以说实践出真知 :)
metero
2003-01-09
打赏
举报
回复
这个在书上可没有说。
metero
2003-01-09
打赏
举报
回复
如果这样的话,倒不如用scanf 了。
rushman
2003-01-09
打赏
举报
回复
首先,用fflush来清除cin/cout的缓冲区是不可取的。因为无法确定cin/cout是否是通过stdin/stdout文件句柄来进行操作的。
对于你的问题,可以肯定是因为输入缓冲区的问题。输入的回车'\n'始终不会被读出。可以这样
char c;
cin.clear();
do{
cin.get(c);
while(c > '\n');
即可。
但是还是建议你不要用cin来输入数字(整数/浮点都会有问题),你可以先读取一整行,在从其中得到需要的数据:
char buf[MAX_LINE];
int i;
cin.get(buf,sizeof(buf) - 1,'\n');//也可以用其他字符表示输入结束
//另外,用fgets也可以,不过回车'\n'它不会帮你删掉。
sscanf(buf,"%d",&i);//用istrstream也可以,方法很多,都不会有什么问题
加载更多回复(17)
深入解析TI TPS7A53高性能LDO:超低噪声与高PSRR电源设计实战
在高速通信、医疗成像等精密电子系统中,电源的纯净度与稳定性是决定系统性能的关键。低压差线性稳压器(LDO)作为一种线性稳压器件,其核心工作原理是通过线性调节方式,提供高精度、低噪声的电压输出,与开关电源相比,它不具备高频开关动作,从而从源头上避免了开关噪声。这一特性使其在抑制电源噪声、提供高电源抑制比(PSRR)方面具有独特的技术价值,尤其适用于为FPGA、高速ADC/DAC、锁相环(PLL)等噪声敏感型负载供电。要实现LDO的最佳性能,外围电路的设计与PCB布局至关重要,其中
输入
/输出电容的选型与配置、反
题解:学而思编程 奶牛杂技团
等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和
数据
结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。,一头奶牛倒下的风险等于它身上所有奶牛(不包括它自己)的重量和减去它的力量。进行叠罗汉表演时,奶牛站在彼此的身上,形成一个有一定高度的垂直堆叠。你的任务是确定奶牛的顺序,使奶牛的风险值中的最大值尽可能小。输出一个整数,表示最大风险值的最小可能值。行,每行两个整数,表示奶牛的重量。,表示奶牛的数量,其中。
人工智能在智能控制领域的应用前景怎么样,目前发展到什么程度
浅述人工智能在智能控制领域的应用 人工智能技术是用计算机去做原来只有人才能做的具有智能的工作,如符号、语言和知识表达、状态特征的识别、精确与模糊的信息处理、分析推理、判断决策等,将这一拟人思维的技术通过计算机来弥补传统控制方法的不足,促进了智能控制的迅猛发展。 智能控制一般按照实际结果进行控制,不依靠所控制对象的数学模型,传承了人类传统思想的非线性特性。它打破了传统控制理论中关于数学模型的框架。 ...
基于AES-GCM与PBKDF2的本地密码管理器实现指南
对称加密是保障
数据
机密性的核心技术,其中AES算法因其高安全性和广泛采用成为行业标准。其原理是通过特定长度的密钥对
数据
进行混淆和扩散,确保未经授权者无法解读原始信息。在密码管理等实际应用中,单纯的加密往往
不够
,还需结合密钥派生函数(如PBKDF2)将用户易记的口令转化为强加密密钥,并通过盐值抵御彩虹表攻击。认证加密模式(如GCM)则进一步提供了
数据
完整性校验,防止密文被篡改。这些技术共同构成了现代
数据
安全的基础架构,尤其适用于需要完全掌控
数据
的本地化场景,例如开发一个自主管理的密码存储工具,它融合了AES-
TPS65912x电源管理芯片:从核心架构到实战调试全解析
电源管理单元(PMU)是现代嵌入式系统的核心,它通过集成多路DC-DC和LDO,取代了传统的分立电源方案,解决了系统供电复杂、布板困难的问题。其工作原理在于通过高效的开关电源和线性稳压技术,为处理器、内存、射频等不同模块提供精准、稳定的电压和电流。这项技术的核心价值在于显著提升系统集成度、降低功耗并简化设计。在智能手机、平板电脑、物联网设备等对空间和能效要求苛刻的应用场景中,高度集成的PMU已成为标配。以德州仪器的TPS65912x为例,这颗芯片集成了四路可配置降压转换器和十路LDO,并内置了完整的电源状态
C语言
70,039
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章