C++文件读写
使用的库
#include <fstream>
涉及到的3个类:ofstream、ifstream、fstream
- ofstream: 写入文件的Stream类
- ifstream: 从文件中读取的Stream类
- fstream: 包含读和写的Stream类
文件的打开方式:open()
void open(const char* szFileName, int mode)
模式可以为:
ios::in 打开文件用于读取数据。如果文件不存在,则打开出错。
ios::out 打开文件用于写入数据。如果文件不存在,则新建该文件;如果文件原来就存在,则打开时清除原来的内容。
ios::binary 以二进制方式打开文件。若不指定此模式,则以文本模式打开。
ios::ate 打开一个已有的文件,并将文件读指针指向文件末尾(读写指 的概念后面解释)。如果文件不存在,则打开出错。
ios::app 打开文件,用于在其尾部添加数据。如果文件不存在,则新建该文件。
ios::trunc 打开文件时会清空内部存储的所有数据,单独使用时与 ios::out 相同。。
上面三个类会自动调用open函数,所以不用再自己待用open函数。
文件的打开方式也可直接用于上面三个类。
ofstream file ("a.txt", ios::app | ios::binary);
读文件代码
int* ReadParasFile(string file_name)
{
int send_data_[1024];
ifstream infile(file_name);
string buffer;
int i = 0;
while(getline(infile,buffer))
{
int out_data;
out_data = stoi(buffer);
send_data_[i] = out_data;
i++;
}
infile.close();
return send_data_;
}
getline()函数的定义
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream &is , string &str );
- is 进行读入操作的输入流
- str 用来存储读入的内容
- delim 终结符,遇到该字符停止读取操作,不写的话默认为回车。
写文件代码
void WriteParasFile(string file_name,int* data)
{
ofstream out_file(file_name);
for (int i = 0; i < 1024; i++)
{
int tmp = data[i];
out_file << i << ":" << tmp << "\r\n";
}
out_file.close();
}