社区
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()的返回值不是一样的吗,怎么这里是不同的,想不明白.
...全文
152
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
}
C++ I/O
流
探秘:解锁
输入
输出之门
C++的 I/O 系统是一个功能强大且灵活的工具集,它不仅支持基础的控制台
输入
输出,还能处理复杂的内存、文件 I/O 操作。通过熟练掌握C++的 I/O 技术,我们能够更加高效地处理数据,构建出更加健壮和易用的程序。希望这篇文章能为你打开C++ I/O 世界的大门,引领你走向更加广阔的编程天地。
C++数据的
输入
输出秘境:IO
流
C++的
输入
输出都依靠IO
流
实现,本章为C++最后一章,后续如有遗漏将会继续补充
C++——
流
和
输入
输出
流
的基本认识和与
输入
输出形成的体系以及C++中一些
输入
输出方法的介绍
day7 cpp:c++
输入
输出
流
:
流
的四种
状态
,标准
输入
输出
流
,文件
输入
输出
流
,字符串
输入
输出
流
public:String():_pstr(new char[1]())//不要:_pstr(nullptr)因为cout对于char*有重载功能,若_pstr初始化为空指针,cout会输出中断,除非先做个if(_pstr)判断{}if (this!= &rhs) {size_t length() const{//const表示不会修改成员变量= '\0') {len++;s++;return len;
C语言
流
输入
和输出函数
printf(scanf)、puts(gets)和putchar(getchar)是分别向标准
流
输出(由标准
流
读入)字符串、一行字符和单个字符的函数。除了这些函数,C语言也提供了面向任何
流
的
输入
和输出函数。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章