fstream的用法总结

来源:互联网 发布:mac pro怎么新建文件夹 编辑:程序博客网 时间:2024/05/16 23:59

#include <iostream>#include <fstream>#include <string>using namespace std;void each_line(const char* in, const char* out);void each_word(const char* in, const char* out);void each_char(const char* in, const char* out);int main(){    const char *path_in  = "D:\\project\\cpp\\file\\input";    const char *path_out_line = "D:\\project\\cpp\\file\\output_each_line";    const char *path_out_word = "D:\\project\\cpp\\file\\output_each_word";    const char *path_out_char = "D:\\project\\cpp\\file\\output_each_char";    //ifstream infile(path_in);    //ifstream infile;    //infile.open(path_in, istream::in);    //ofstream outfile(path_out);    //ofstream outfile;    //outfile.open(path_out, ofstream::out);    each_line(path_in, path_out_line);    each_word(path_in, path_out_word);    each_char(path_in, path_out_char);    return 0;}void each_line(const char* in, const char* out){    ifstream infile(in);    ofstream outfile(out);    string s;    if(infile){        while(getline (infile, s)){            cout<<s<<endl;            outfile<<s<<endl;        }    }else{        cout<<"empty file!"<<endl;    }    infile.close();    outfile.close();}void each_word(const char* in, const char* out){    ifstream infile(in);    ofstream outfile(out);    string s;    if(infile){        while(infile >> s){            cout<<s<<endl;            outfile<<s<<endl;        }    }else{        cout<<"empty file!"<<endl;    }    infile.close();    outfile.close();}void each_char(const char* in, const char* out){    ifstream infile(in);    ofstream outfile(out);    char s;    if(infile){        while((s = infile.get()) != EOF){            cout<<s<<endl;            outfile<<s<<endl;        }    }else{        cout<<"empty file!"<<endl;    }    infile.close();    outfile.close();}

注意点:

1,两种打开方式有两种,

一种是:

const char *path_in  = "D:\\project\\cpp\\file\\input";

ifstream infile(path_in); // =file.open("D:\\project\\cpp\\file\\input",ios::in|ios::out);

第二种是:

const char *path_in  = "D:\\project\\cpp\\file\\input";

ifstream infile;
infile.open(path_in, istream::in);

打开方式:

ios::app:   以追加的方式打开文件
ios::ate:   文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in:    文件以输入方式打开(文件数据输入到内存)
ios::out:   文件以输出方式打开(内存数据输出到文件)
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc:  如果文件存在,把文件长度设为0


2,文件遍历的三种方式:

while(getline (infile, s))  //line

while(infile >> s) //word

while((s = infile.get()) != EOF) //char



参考:

1,http://www.cnblogs.com/kevin2010_vip/archive/2010/02/03/1662853.html

2,http://panpan.blog.51cto.com/489034/101625/

0 0
原创粉丝点击