本文已参与「新人创作礼」活动,一起开启掘金创作之路。
| 打开方式 | 解释 |
|---|---|
| ios::in | 为读文件而打开文件 |
| ios::out | 为写文件而打开文件 |
| ios::ate | 初始位置:文件尾 |
| ios::app | 追加方式写文件 |
| ios::trunc | 如果文件存在先删除,再创建 |
| ios::binary | 二进制方式 |
便于记忆: 以代码本身为主体, 向外输出out,即为写文件; 向内读入in,即为读文件。
//文本文件 读文件
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
//文本文件 写文件
void writeFile() {
//1、包含头文件fstream
// 2、创建对象流
ofstream ofs;
// 3、指定打开方式
ofs.open("test.txt", ios::out);
// 4、写文件
ofs << "姓名:张三 " << endl;
ofs << "性别:男" << endl;
ofs << "年龄:18" << endl;
// 5、关闭文件
ofs.close();
}
//文本文件 读文件
void readFile() {
//1、包含头文件fstream
//2、创建对象流
ifstream ifs;
// 3、打开文件,并判断是否打开成功
ifs.open("test.txt", ios::in);
if (!ifs.is_open()) {
cout << "文件打开失败" << endl;
return;
}
//4、读文件
//法一
//char buf[1024] = {0};
//while (ifs >> buf) { // 一次读一行
// cout << buf << endl;
//}
//法二
/*char buf[1024] = { 0 };
while (ifs.getline(buf,sizeof(buf)))
{
cout << buf << endl;
}*/
// 法三
string buf;
while (getline(ifs, buf)) {
cout << buf << endl;
}
//// 法四 (较慢,不提倡)
//char c;
//while ((c = ifs.get()) != EOF) { //EOF = End of File
// cout << c;
//}
}
int main() {
writeFile();
readFile();
return 0;
}