首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cin的根本有关问题

2012-03-04 
cin的根本问题?都说cin、cout为标准输入、输出流!那么多流怎么理解?这样一个语法,不是很明白:while(std::cin

cin的根本问题?
都说cin、cout为标准输入、输出流!那么多流怎么理解?

这样一个语法,不是很明白:
while(std::cin)
{
        std::cin   > >   str;   //前面已经声明string   str
}
这里的语法是流状态的检查。请问怎么让流处于错误状态的。有怎么恢复正确状态。
如果我在上面的代码后加
std::cout   < <   str;
再次输出string对象时,无法再次输出。

谁能给我一个流清楚的理解。很模糊!
谢谢

[解决办法]
去看看《C++ Primer》关于流的章节,知道点基础知识再来问吧。
不可能在csdn上什么都讲的。
[解决办法]
大概如此,具体看书

cin或cout对象包含一个描述流状态的数据成员.
流状态由三个io_base元素组成:eofbit,badbit,failbit,每个元素都是一位
可以是1(设置)或者是0(清除).
当cin操作到达文件末尾时,它将设置eofbit
当cin操作未能读取到与其的字符时或试图读取不可访问的文件,写入保护的磁盘,
将设置failbit.一些无法诊断的失败破坏流时,badbit元素将被设置.
当3个状态为设置为0时,说明一切顺利,程序可以检查流状态.
eof()如果eofbit被设置,则返回ture
fail()如果failbit被设置,则返回ture
bad()如果badbit或者failbit被设置,则返回ture
设置状态(两种方法)
clear();默认参数0,这时候将清除全部三个状态位.
clear(eofbit);将状态设置为eofbit,即eofbit将被设置,其他两个状态位被清除
setstate();只是影响到参数中设置已设置的位.
setstate(eofbit);将设置eofbit,而不会影响到其他位,如果failbit被设置,
则还是被设置.
[解决办法]
输入 Ctrl + C

热点排行