| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2342 人关注过本帖
标题:[求助]关于cin.fail(),cin.clear(),cin.sync()的解释
只看楼主 加入收藏
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
 问题点数:0 回复次数:8 
[求助]关于cin.fail(),cin.clear(),cin.sync()的解释
如题,希望最好给个例子来看看~~
以及每个函数的功能与实现和他们的头文件~~~
搜索更多相关主题的帖子: cin sync clear fail 
2007-05-10 14:43
weishj
Rank: 1
等 级:新手上路
威 望:2
帖 子:141
专家分:0
注 册:2007-4-22
收藏
得分:0 

#include <iostream>
using namespace std;
void main()
{
int a;
cout<<"输入一个字母:"<<endl;
cin>>a; //int型变量中放了char型数据,failbit置1
cout<<"cin.fail()="<<cin.fail()<<endl; //输出1
cout<<"输入一个数字:"<<endl; //由于failbit值为1,输入流不能正常工作
cin>>a; //故此处的输入无效
cout<<a<<endl; //输出不确定值
cin.clear(); //此处用cin.clear()流标志复位
cout<<"cin.fail()="<<cin.fail()<<endl; //此处failbit已为0
cout<<"输入一个数字:"<<endl;
//但刚才输入的字符并没有从流中清除,所以cin>>a又把那个字符放入a中,流输入流又不能正常工作
cin>>a;
cout<<a<<endl; //输出不确定值
cout<<"cin.fail()="<<cin.fail()<<endl; //在此处failbit又为1
cin.clear(); //再次修复输入流
cin.ignore(); //取走刚才流中的字符
cout<<"输入一个数字:"<<endl; //再次接收用记输入,这次输入数字,正常输出了
cin>>a;
cout<<"a="<<a<<endl;
//现在再看一下输入流的failbit
cout<<"cin.fail()="<<cin.fail()<<endl;//输出0,表明输入流已恢复正常

}


If you shed tears when you miss the sun, you also miss the stars.
2007-05-10 17:25
weishj
Rank: 1
等 级:新手上路
威 望:2
帖 子:141
专家分:0
注 册:2007-4-22
收藏
得分:0 
sync()用法我也不太清楚,哪位高人帮下

If you shed tears when you miss the sun, you also miss the stars.
2007-05-10 17:32
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
sync() 清空输入缓冲区的作用。

和ignore()类似作用!

A protected virtual function that tries to synchronize the controlled streams with any associated external streams.

查查msdn吧!

Fight  to win  or  die...
2007-05-10 18:20
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 
LS的~~
什么叫清空输入缓冲区~~~
什么又叫缓冲??
说清楚一点啊~~
我是菜鸟一只.....

谢谢了~~

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-10 21:32
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 
我想再问一个问题~
根据二楼的源代码,程序是可以正常运行
可当我把头文件
#include<iostream>
using namespace std;
改为
#include<iostream.h>
时,程序就会一直循环下去~~
请问这是为什么?????

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-10 22:40
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
为什么要改呢?难得楼主觉得用.h更好?

Fight  to win  or  die...
2007-05-11 09:09
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 
我只是想知道为什么.h文件用不了cin.fail(),cin.clear()而已

想有点求知精神而已~~

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-11 12:32
快速回复:[求助]关于cin.fail(),cin.clear(),cin.sync()的解释
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014837 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved