学习目标:
学习内容:
1.文件操作
程序运行时产生的数据都属于临时数据,程序结束后就会释放。通过文件将数据持久化。C++中对文件操作需要包含头文件<fstream>
,文件类型主要包括文本文件和二进制文件:
- 文本文件:文件以文本的ASCII码的形式存储子在计算机中;
- 二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们;(略)
操作文件的三大类:
ofstream:写操作
;ifstream:读操作
;fstream:读写操作
;
2.文本文件之写文件
主要流程为:
- 包含头文件
<fstream>
; - 创建流对象:
ofstream ofs
; - 打开文件:
ofs.open("文件路径",打开方式)
; - 写数据:
ofs <<"写数据"<<endl;
; - 关闭文件:
ofs.close();
;
打开文件 | 解释 |
---|---|
ios::in | 为读文件而打开文件 |
ios::out | 为写文件而打开文件 |
ios::ate | 初始位置:文件尾 |
ios::app | 追加方式写文件 |
ios::trunc | 若文件存在,则先删除在创建 |
**ios::binary | 二进制方式 |
注意:文件的打开方式可以配合使用,利用操作符 ’|‘
2.1 文本文件写文件
//写入文件!!
#include<iostream>
#include<fstream>
using namespace std;
void test()
{
ofstream ofs; //创建流对象
ofs.open("test.txt", ios::out); // 打开文件
ofs << "name: Jack" << endl;
ofs << "age: 18" << endl;
ofs.close();
cout << "成功写入文件!!" << endl;
cout << "-------------------------" << endl;
}
int main()
{
test();
system("pause");
return 0;
}
2.2 文本文件读文件
文本文件读文件的步骤:
- 包含头文件
<fstream>
- 创建流对象
ifstream ifs;
- 打开文件判断文件是否存在
ifs.open("文件路径",打开方式)
ifs.is_open();
- 读取数据的四种方式;
- 关闭文件:
ifs.close()
读文件
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void test()
{
ifstream ifs;
ifs.open("test.txt", ios::in);
if (!ifs.is_open())
{
cout << "文件不存在!!" << endl;
return;
}
//方法一:以空格为分界线
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)
{
cout << c;
}*/
}
int main()
{
test();
system("pause");
return 0;
}