有这三个输出的写法,cout,clog,cerr这三个。cout可以直接输出到磁盘里
clog和cerr的差别在于,cerr是直接输出的,clog还会进行缓存。
读写文件
ifstream写文件(其实ifstream是可读可写的)
ofstream读文件
创建并写入文件
char buffer[1024];
ofstream file;
file.open("ok.txt",ios::app);//这边这个ios::app是表示追加的意思,如果还要添加内容追加到后面
cout << "开始写入信息" << endl;
cin.getline(buffer, 1024);
file << buffer << endl;
file.close();
system("pause");
return 0;
读取文件的两种写法,一种是只读取一行,一种是能完整的读取出来
//读取一行
ifstream Readfile;
Readfile.open("ok.txt");
cout << "read information";
Readfile >> buffer;
cout << buffer << endl;
char buffer2[1024] = {0};
Readfile.seekg(0, ios::end);// 先将游标移动到最后的位置
int filelen=Readfile.tellg();//文件长度
Readfile.seekg(0, ios::beg);//将游标移到最前面,通过动游标获取长度
Readfile.read(buffer2, filelen);
cout << buffer2 << endl;
几个标签
ios::app这个的意思表示的是可以在文件里面追加输入内容。
ios:ate表示的是游标会自动定位到内容末尾。
ios::in用于读取文件,不能写入
ios::out表示的是写入文件
ios::trunc截断,如果文件存在,先将该文件删除,再创建。
ios::out|ios::app表示的是文件可以追加写入
复制文件
bool filecopy(const char*incopyfilename, const char*intargetfilename)
{
char buffer[4096] = { 0 };
ifstream ireadfile;
ofstream wwritefile;
ireadfile.open(incopyfilename);
wwritefile.open(intargetfilename);//没用就创建一个
ireadfile.seekg(0, ios::end);// 先将游标移动到最后的位置
int filelen = ireadfile.tellg();//文件长度
ireadfile.seekg(0, ios::beg);//将游标移到最前面
ireadfile.read(buffer, filelen);
wwritefile << buffer;
ireadfile.close();
wwritefile.close();
return true;
}



