文件流fstream处理多个文件

在C++中,使用fstream处理多个文件时,如果直接打开新的文件,可能会导致只读取第一个文件。解决办法是在关闭文件后调用clear()函数清除错误状态,例如:inFile.clear(ios::goodbit)。这样可以确保后续文件能被正确读取。
摘要由CSDN通过智能技术生成

问题

1. 我们在调用文件流fstream解决实际问题时,常常会遇到要读入多个文件或创建输出多个文件。但是我们又不想定义很多的流,而只想用一个输入流ifstream和一个输出流ofstream就搞定。该怎么办呢?

2. 很简单的嘛,直接先定义流,每次涉及到一个文件读入读入时候直接调用open()函数,完毕后就close()。可是实际结果好像不如人意,比如读入的文件好像只有第一个文件被读入了,而其他都被忽略了,输出的文件也只有第一个有效,这是怎么回事呢?

解决办法:

参考:http://www.diybl.com/course/3_program/c++/cppsl/2008520/117257.html

  一个朋友向我请教一个程序,相关代码如下:
       string s;
        vector <string> vs;
        ifstream inFile("F:\\MyReceiveFiles\\FillCompo_KP.mod", ios::in);
        while (getline(inFile, s))
            vs.push_back(s);
              cout<<vs.size()<<endl;
        inFile.close();
        inFile.open("F:\\MyReceiveFiles\\FillCompo_Line.mod", ios::in);
        while (

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值