码迷,mamicode.com
首页 > 编程语言 > 详细

文本文件合并(C++实现)

时间:2017-05-27 20:03:37      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:main   use   stream   get   std   文件流   合成   class   c++实现   

 直接附上代码吧

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;

void write_into_file(){
    cout<<"请输入合成后生成的文件名:"<<endl;
    string Des_FileName;
    cin>>Des_FileName;
    cout<<endl;

    cout<<"请输入想要合并原始文件个数:"<<endl;
    int cnt;
    cin>>cnt;
    cout<<endl;

    string Source_Array_FileName[cnt];//保存将要合并的各文件
    for(int i=0;i!=cnt;++i){
        cout<<"请输入第"<<i+1<<"个原始文件:"<<endl;
        cin>>Source_Array_FileName[i];
    }

    ofstream outfile(Des_FileName,ios::out);//定义输出文件流对象,并赋初值,指定模式
    ifstream infile;//定义一个输入文件流对象
    char c;//用来暂存从文件独处的一个字符

    for(string Temp_FileName : Source_Array_FileName){
        infile.open(Temp_FileName,ios::in);
        if(!infile){
            cerr<<"打开文件 "<<Temp_FileName<<" 失败"<<endl;
        }
        while(infile.get(c)){
            outfile<<c;
        }
        infile.close();
        cout<<Temp_FileName<<endl;
    }
    outfile.close();
    cout<<"文件合并已完成"<<endl;
}
int main(){
    write_into_file();
    system("pause");
    return 0;
}

 总的来说,思路特别简单,打开一个文件,就将此文件的内容存入到目标文件中,然后执行下一个文件操作,不过吧,还是有需要注意的

在将一个源文件的内容已经转存入目标文件后,在打开另外一个源文件之前,必须先将当前的输入文件流关联的源文件关闭,即用infile.close(),不然就不能打开下一个文件

文本文件合并(C++实现)

标签:main   use   stream   get   std   文件流   合成   class   c++实现   

原文地址:http://www.cnblogs.com/-beyond/p/6914230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!