社区
工具平台和程序库
帖子详情
关于istream的问题???
jp311
2002-12-11 03:10:16
int i;
cin >> i; // 1
cin.clear();
if (cin.good())
{
cin >> i; // 2
}
第一个cin >> i;的时候我输入了一个非int数据使cin状态出错.
然后用cin.clear();重置状态cin.good为true,可是我的第二个cin >> i;还是无法运行.望高人指点...
...全文
79
4
打赏
收藏
关于istream的问题???
int i; cin >> i; // 1 cin.clear(); if (cin.good()) { cin >> i; // 2 } 第一个cin >> i;的时候我输入了一个非int数据使cin状态出错. 然后用cin.clear();重置状态cin.good为true,可是我的第二个cin >> i;还是无法运行.望高人指点...
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chinajiji
2003-02-27
打赏
举报
回复
int i;
cin >> i; // 1
cin.clear();
//!char c;
//!cin >> c;
fflush(stdin); //这样做更好!!!
if (cin.good())
{
cin >> i; // 2
}
liushmh
2002-12-13
打赏
举报
回复
昨天,专门回去看了一下,得出的结论是,我上面的说法不很准确。
在执行cin>>i后,cin会将输入的字符流保留在一个空间里面(假设其名称是ptr)如果没有输入一个int类型的数,那么iostream的执行流程就发生了变化,它在将输入的字符,比如'k'转换成int的107后,执行一个函数,从而让ptr的地址自动-1
,这个时候,再把ptr指向的值赋给i(我觉得ptr的地址空间是以i的地址+1处开始的)。也就是说每次输入时ptr都要先++,如果该输入不能匹配的话,就 -- ,并且将_status的值设为0(cin.good()的返回是{_status == 0}),所以此时,单单cin.clear()就不可以了。直接对底层的类似ptr操作也不是很安全,故我认为最好的办法是将cin中的值在赋一次,从而使得ptr可以自动增一,而不会由于不匹配而返回到原来的地方。
如以下语句
int i;
cin >> i; // 1
cin.clear();
char c;
cin >> c;
if (cin.good())
{
cin >> i; // 2
}
jp311
2002-12-11
打赏
举报
回复
那任何把streambuf里的数据清掉让以后的cin都恢复正常呢???
望liushmh继续指导
liushmh
2002-12-11
打赏
举报
回复
if (cin.good())
{
cin >> i; // 2
}
这段代码其实执行了,但是cin的streambuf里面的数据没有被清除掉,这样,又一次执行cin >>i时,还是把原来在streambuf里的数据又输出了一边给i.
你可以
cin.clear();
cout << cin.good() << endl; //1
if (cin.good())
{
cin >> i; // 2
}
cout << cin.good() << endl; //0
看看,就明白了。
IStream
.zip
IStream
.tlb
总结来说,`
IStream
.zip`压缩包可能包含了一个关于如何在VB中利用`
IStream
`接口进行`GDI+`的`StdPicture`对象与字节数组之间转换的教程或组件。`
IStream
.tlb`文件是关键,它可能包含了相关的类型定义和接口信息,...
C语言头文件
ISTREAM
.H
C语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件
ISTREAM
.HC语言头文件...
Istream
.tlb
传说中的
ISTREAM
.TLB 这个可是找了好久才找到的呢
VC GDI+ 窗口截图内存BMP转JPG,压缩、JPG再转
IStream
流,
IStream
流再转 BYTE
VC GDI+ 窗口截图内存BMP转JPG,压缩、JPG再转
IStream
流,
IStream
流再转 BYTE 上体见 http://blog.csdn.net/q610098308/article/details/78181933
istream
头文件(in Dev-cpp)
c++文件输入类
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章