#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