鱼C论坛

 找回密码
 立即注册
查看: 4662|回复: 6

C++ 请问为何第二读取不到TXT文件中的内容?

[复制链接]
发表于 2013-1-13 23:40:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>
#include<fstream>
#include <string>
using namespace std;


int main()       
{
char m[20];
ofstream in;       
ifstream out;
        out.open ("g:\\1.txt");
        while(out.getline(m,200) )
        cout<<m<<"\n"<<endl;    //第一次能读取到
        cin.get();
        cin.ignore (100,'\n');1
        out.close ();   

        out.open ("g:\\1.txt");
        while(out.getline(m,200) )
        cout<<m<<"\n"<<endl;   //第二次读取到空
        cin.get();
        out.close ();
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-14 00:52:05 | 显示全部楼层
第二次打开的时候调用out.clear();
因为一个流对象关闭一个文件后并不会reset状态位。后面打开的时候clear()下。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-1-14 11:58:32 | 显示全部楼层

谢谢,但为什么ignore 函数不行呢?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-14 20:33:07 | 显示全部楼层
shana 发表于 2013-1-14 11:58
谢谢,但为什么ignore 函数不行呢?

请说清楚意思。。。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-1-14 22:21:49 | 显示全部楼层
suiyan 发表于 2013-1-14 20:33
请说清楚意思。。。

在第二次打开之前用ignore忽略流中内容
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-15 02:16:46 | 显示全部楼层
shana 发表于 2013-1-14 22:21
在第二次打开之前用ignore忽略流中内容

回lz:这里打开不成功不是受流中字符的影响,而是读完文件后对象out的标志位没有重置。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-1-15 22:32:57 | 显示全部楼层
suiyan 发表于 2013-1-15 02:16
回lz:这里打开不成功不是受流中字符的影响,而是读完文件后对象out的标志位没有重置。

原来是这样啊,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-9 04:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表