21xrx.com
2025-03-31 23:18:40 Monday
文章检索 我的文章 写文章
C++文件操作指南:读写和保存文件
2023-07-10 20:22:13 深夜i     15     0
C++ 文件操作 读取 写入 保存

C++是一种流行的编程语言,常被用于开发各种类型的应用程序。文件操作是C++程序的重要部分,主要涉及到读取、写入和保存文件,这些操作可以通过使用C++标准库中的文件流来实现。本文将介绍如何在C++中进行文件操作。

1. 打开文件

在C++中,要打开一个文件,需要使用文件流(fstream)类。该类提供了两个主要的函数,用于打开和关闭文件,分别是open()和close()函数。

打开文件时,需要指定文件的名称和打开方式,如下所示:

#include <fstream>
using namespace std;
int main() {
  fstream file;
  file.open("filename.txt", ios::in);
  //其中 ios::in 是以只读方式打开文件
  //其他可用选项有:ios::out(写方式打开文件)、ios::app(将数据追加到文件末尾)等
  if (!file.is_open())
   cout << "File not found";
   return 1;
 
  // 文件已打开,可以进行文件操作。
  file.close();
  return 0;
}

2. 读取文件

文件打开后,可以使用文件流的函数来读取其中的数据。常见的读取文件的函数包括get()、getline()和read()。

get()函数用于逐个字符地读取文件中的数据,直到读取到文件末尾。例如:

#include <fstream>
using namespace std;
int main() {
  fstream file;
  file.open("filename.txt", ios::in);
  char c;
  while (file.get(c))
   cout << c;
 
  file.close();
  return 0;
}

上述代码将打开一个名为"filename.txt"的文件,并使用get()函数逐个字符地读取其中的数据,并将其输出到屏幕上。

getline()函数用于读取文件中的一行数据,并将其存储到字符串中。例如:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
  fstream file;
  file.open("filename.txt", ios::in);
  string s;
  getline(file, s);
  cout << s;
  file.close();
  return 0;
}

上述代码将读取文件中的第一行数据,并将其输出到屏幕上。需要注意的是,getline函数并不会返回行末的换行符,因此如果需要在输出时保留换行符,需要手动添加。

read()函数用于读取指定数量的字符或字节。例如:

#include <fstream>
using namespace std;
int main() {
  fstream file;
  file.open("filename.txt", ios::in);
  char buffer[10];
  file.read(buffer, 10);
  cout << buffer;
  file.close();
  return 0;
}

3. 写入文件

在C++中,使用文件流的put()和write()函数可以向文件中写入数据。put()函数用于写入单个字符,write()函数用于写入指定数量的字符或字节。例如:

#include <fstream>
using namespace std;
int main() {
  fstream file;
  file.open("filename.txt", ios::out); //以写方式打开文件
  //使用put()函数写入单个字符
  char c = 'A';
  file.put(c);
  //使用write()函数写入多个字符
  char buffer[10] = "Hello";
  file.write(buffer, 5);
  file.close();
  return 0;
}

上述代码将打开一个名为"filename.txt"的文件,使用put()和write()函数向其中写入数据,然后关闭文件。

4. 保存文件

保存文件与写入文件类似,都是使用文件流的put()和write()函数进行操作。通常,保存文件时需要先将数据写入到缓冲区中,然后再将缓冲区中的数据一次性写入到文件中。可以使用flush()函数将缓冲区中的数据刷新到文件中。例如:

#include <fstream>
#include <iostream>
using namespace std;
int main() {
  fstream file;
  file.open("filename.txt", ios::out);
  file << "Hello, world!";
  file.flush(); //刷新缓冲区
  file.close();
  return 0;
}

上述代码将向名为"filename.txt"的文件中写入数据,并在写入完成后手动调用flush()函数将缓冲区的数据刷新到文件中。

总结

C++是一种强大的编程语言,在文件操作方面也有很多好用的工具和函数。通过使用文件流类,我们可以方便地进行文件的读写和保存操作。需要注意的是,在进行文件操作时一定要注意文件的打开和关闭操作,避免文件泄露和损坏。

  
  

评论区

请求出错了