社区
工具平台和程序库
帖子详情
问个老问题了,有关cin
darcymei
2003-11-09 04:41:19
以前好想看过这样的帖子,找不到了。
int i;
while(cin>>i);
为什么要两次ctrl+z才能结束。
而且后一个ctrl+z还在cin中,如何清空输入流(这个方法很多,希望看到各种不同的,并请说说效率方面如何)。
...全文
276
13
打赏
收藏
问个老问题了,有关cin
以前好想看过这样的帖子,找不到了。 int i; while(cin>>i); 为什么要两次ctrl+z才能结束。 而且后一个ctrl+z还在cin中,如何清空输入流(这个方法很多,希望看到各种不同的,并请说说效率方面如何)。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
darcymei
2003-11-10
打赏
举报
回复
有一次是VC环境要求,能问一下为什么吗?
fierygnu
2003-11-10
打赏
举报
回复
推荐《The C++ Standard Library A Tutorial and Reference》
baizhj
2003-11-10
打赏
举报
回复
to mmlymlymly(mly),先编译连接,然后再运行,如果是在VC环境下,自然得按两次,因为有一次是VC环境要求的.
kurt8276
2003-11-09
打赏
举报
回复
你们我都不动
darcymei
2003-11-09
打赏
举报
回复
谢谢老大,还有个问题想问一下,对于标准库的学习您是怎么样的呢。是找本有关的书来看,还是直接看编译器的帮助手册(如msdn),我始终觉得前者太不完整,后者太不详细,直接看头文件一堆宏又看得人晕头转向。请问您有什么好方法吗?
短歌如风
2003-11-09
打赏
举报
回复
mmlymlymly你说的那个贴子我看过了, fierygnu的方法是我们用的。而更好的写法是:
cin.clear();//先清除错误位
cin.ignore(std::numeric_limits<std:streamsize>::max(), '\n');//无论行有多长……
与你的方法相比,这段代码可以在从文件输入时也有效。
你要注意,cin输入是以行为单位的,在执行这段时,缓冲区中的内容不会超过一行,并且一定会有一个换行符,所有这段代码是有效的。
在输入是stdin时,你的代码看来也有效,但我不知道是C标准规定的还是Windows系统的作用,如果是后者,我建议你把这种方法忘掉。即使使用这种方法,也不要忘了加一段注释,因为用seekg来实现这一功能远没有用ignore更容易懂。
darcymei
2003-11-09
打赏
举报
回复
to baizhj(baizhj) 说话负责点好伐,vc下须按2次,你有没有试过啊!
我没有bcc,那看来是vc的bug 了喽。
还有麻烦短歌老大帮忙看下
http://expert.csdn.net/Expert/topic/2427/2427751.xml?temp=2.953738E-02
那几种方法哪个比较好呢?
还有就是能不能谈谈您对cin或者流结构的一些看法,我看msdn总是看得很糊涂,这方面有介绍的书又不是很多,小弟先谢过了。
ssbull
2003-11-09
打赏
举报
回复
我也遇到这样的问题,总是想不通,可楼上两位老兄好像也没说明白原因:)
学习ing
短歌如风
2003-11-09
打赏
举报
回复
要注意的就是,在输入^Z之后,流处于EOF状态,要用clear方法恢复状态才能继续输入。
baizhj
2003-11-09
打赏
举报
回复
在Visual C++中,只按了一次就行了!不管是一次还是两次,是因为你的输入数据和i的数据类型不一样造成的,系统认为你的输入是非法输入,表示输入结束.
短歌如风
2003-11-09
打赏
举报
回复
#include <iostream>
#include <limits>
using std::cin;
using std::cout;
using std::endl;
int main(int argc, char* argv[])
{
int i;
char ch;
while(cin >> i)
cout << i << endl;
cout << "Input char:";
cin.clear();
cin>>ch;
cout << "char:" << ch << endl;
return 0;
}
没有问题。只用输入一次^Z。
用的是STLport 4.5.3,编译器BCC32 5.6。
rushinger
2003-11-09
打赏
举报
回复
坐在第二排,有人回答了好听得清楚些。
zhaochong12
2003-11-09
打赏
举报
回复
搬个小凳子,坐在第一排...
HZFS_1.rar
当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。
施肥播种机 SolidWorks三维.rar
施肥播种机 SolidWorks三维.rar
土豆收获分类机 SolidWorks三维.rar
土豆收获分类机 SolidWorks三维.rar
含多类型电动汽车的微网两阶段优化调度模型研究(Matlab代码实现)
含多类型电动汽车的微网两阶段优化调度模型研究(Matlab代码实现)
自己绘制的图纸打开乱码怎么办?下载应急方案及时解决.rar
一键还原CAD图纸正常字体,告别问号乱码
工具平台和程序库
24,852
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章