std::ios几种模式
ios::in
打开文件用于读取
ios::out
打开文件用于写入
ios::ate
文件打开后定位到文件末尾
ios::app
所有写入都追加到文件末尾
ios::trunc
如果文件已存在则先删除该文件
ios::binary
二进制方式打开文件,调用ios::binary与否的区别主要在于对换行符的处理方式
在windows下,以ios::binary方式打开,换行符被解释成\n,反之,换行符被解释成\r\n
在类unix下,换行符都被解释成\n,没有区别
is_open()
返回一个bool值,true表示文件已经被顺利打开,false则相反
验证流状态的相关函数
bad()
如果在读写过程中出错,返回true
fail()
除了bad()之外,在格式错误时也会返回true
eof()
读文件到达文件末尾,返回true
good()
最常用的函数,如果以上任何一个函数返回true的话,该函数返回false
clear()
重置以上成员函数的检查状态
简单的实例
int main() {
std::ofstream out_file;
out_file.open("data.txt", std::ios::out | std::ios::trunc);
if (!out_file.is_open()) {
std::cout << "file data.txt open failed" << std::endl;
return -1;
}
if (out_file.good()) {
out_file << "This is a data.\n";
}
out_file.close();
return 0;
}