【嵌入式——C++】文件操作

【嵌入式——C++】 文件操作

  • 文件类型
  • 操作文件的三大类
  • 写文件步骤
  • 打开方式
  • 读文件步骤
  • 读取数据方式
  • 二进制文件操作

文件类型

  1. 文本文件
  2. 二进制文件

操作文件的三大类

  1. ofstream:该数据类型表示输出文件流,用于创建文件并向文件写入信息;
  2. ifstream:该数据类型表示输入文件流,用于从文件读取信息;
  3. fstream:该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。

写文件步骤

#include
ofstream ofs;
ofs.open("文件路径",打开方式);
ofs<<"写入的数据";
ofs.close();

打开方式

  1. ios::in:为读文件而打开文件;
  2. ios::out:为写文件而打开文件;
  3. ios::ate:初始位置:文件尾;
  4. ios::app:追加方式写文件;
  5. ios::trunc:如果文件存在先删除,再创建;
  6. ios::binary:二进制方式;
  7. ios::binary | ios::out:用二进制方式写文件。

读文件步骤

#include
ifstream ifs;
ifs.open("文件路径",打开方式);
//读取数据
char buf[1024] = {0};
while(ifs >> buf){
cout<< buf << endl;
}
ifs.close();

读取数据方式

//方式一
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;
}

二进制文件操作

写文件

 ofstream ofs;
 ofs.open("person.txt",ios::out | ios::binary);
 Person p = {"张三",18};
 ofs.write((const char*)&p,sizeof(Person));
 ofs.close();

读文件

ifstream ifs;
ifs.open("person.txt", ios::in | ios::binary);
if (!ifs.is_open()) {
 cout << "文件打开失败";
 return;
}
Person p;
ifs.read((char *) & p,sizeof(Person));
cout << "姓名:" << p.m_Name << "年龄:" << p.m_Age << endl;

你可能感兴趣的:(c++,开发语言,qt,物联网)