社区
C++ 语言
帖子详情
关于流的输入状态的疑问
hbwin2006
2006-07-04 01:14:09
void main()
{
char s[100];
ifstream in("d:\\a.txt"); //这个文件只有一行,而且小于100个字符
in.getline(s,100);
if (in.eof()) cout<<"结束状态1";
if (!in) cout<<"结束状态2"
}
运行结果是"结束状态1".
可是 !in 和 in.eof()的返回值不是一样的吗,怎么这里是不同的,想不明白.
...全文
115
8
打赏
收藏
关于流的输入状态的疑问
void main() { char s[100]; ifstream in("d:\\a.txt"); //这个文件只有一行,而且小于100个字符 in.getline(s,100); if (in.eof()) cout<<"结束状态1"; if (!in) cout<<"结束状态2" } 运行结果是"结束状态1". 可是 !in 和 in.eof()的返回值不是一样的吗,怎么这里是不同的,想不明白.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mmosquito
2006-07-05
打赏
举报
回复
in.eof()指流是否结束
in 指流的状态是否error,
!in != in.eof
文件结束状态还是good,此时如果还继续读,则状态就error
qiqi162002
2006-07-05
打赏
举报
回复
前者是判断是否结束文件了,,后者是判断文件读状态如何.
rollor_phoe
2006-07-04
打赏
举报
回复
会返回false但不是in返回false。
tidyduck
2006-07-04
打赏
举报
回复
可是 !in 和 in.eof()的返回值不是一样的吗,怎么这里是不同的,想不明白
---------------------------------------------------------------------------]
楼主,你搞错了,if(in.eof())的意思是文件到结束的话返回true。
而if(in)是ifstream in("d:\\a.txt"); 这一句执行成功的话,也就是文件成功打开的话就返回true。而楼主你的文件已打开成功了,所以if(in)会一直返回true。
而楼主用的if(!in)就会一直返回false了,它后面的语句当然就不能执行了。
------------------------------------------------------------------------------------]
这个也不太对吧?ifstream对象在读取结束的时候好像也是会返回false的
rollor_phoe
2006-07-04
打赏
举报
回复
可是 !in 和 in.eof()的返回值不是一样的吗,怎么这里是不同的,想不明白
---------------------------------------------------------------------------]
楼主,你搞错了,if(in.eof())的意思是文件到结束的话返回true。
而if(in)是ifstream in("d:\\a.txt"); 这一句执行成功的话,也就是文件成功打开的话就返回true。而楼主你的文件已打开成功了,所以if(in)会一直返回true。
而楼主用的if(!in)就会一直返回false了,它后面的语句当然就不能执行了。
gold123d
2006-07-04
打赏
举报
回复
ifstream in("d:\\a.txt");这一行是不是要这样的ifstream in("d:\\a.txt",ios::in|ios::out);??
rollor_phoe
2006-07-04
打赏
举报
回复
ifstream in("d:\\a.txt");这一行是不是要这样的ifstream in("d:\\a.txt",ios::in|ios::out);??
----------------------------------------------------------------------------
不这样写也是可以的,它有默认参数,可以不写。
in.getline(s,100);这句话改成这样试试getline(in,s);
du51
2006-07-04
打赏
举报
回复
in==in.fail()
rdstate
{
good,eof,fail,bad
}
跟汤老师学Java(第15季):I/O
输入
输出
流
输入
流
、输出
流
字节
流
、字符
流
节点
流
、包装
流
4.字节
流
InputStream:FileInputStream、ByteArrayInputStream、ObjectInputStream &...
深入理解C++
输入
输出
流
为什么引入
输入
输出
流
?因为C++兼容C,所以C中的
输入
输出函数依然可以在C++中使用,但是很显然如果直接把C的那套
输入
输出搬到C++中肯定无法满足C++的需求,第一点也是最重要的一点那就是C中的
输入
输出有类型要求,只...
ffmpeg4.2.2打开
输入
文件/网络
流
是怎么获取
流
信息的
在工作中解决一个bug,继而引发关于
流
信息是怎么获取的,是在avformat_open_input()函数中已经获取了?还是要去avformat_find_stream_info()函数中获取? 先看nb_streams值是在哪变化的,看变量声明得知是...
cin标准
输入
流
错误清理
当我们
输入
英文字母'k'时,它的
状态
标识改为fail(即1),即错误,用cout对用户输出信息,再用cin.clear让错误标识改回为0,让我们可以继续
输入
,再清空
流
数据继续
输入
.如果我们没有了cin.clear,则会进入死循环,其过程为...
java
输入
输出
流
实验总结,写的太详细了
ZooKeeper 很
流
行,有个基本的
疑问
: ZooKeeper 是用来做什么的? 之前没有ZK,为什么会诞生 ZK? OK,解答一下上面的
疑问
:(下面是凭直觉说的) ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章