21xrx.com
2024-06-03 05:38:35 Monday
登录
文章检索 我的文章 写文章
C++文件读写操作详解
2023-07-13 18:03:39 深夜i     --     --
C++ 文件读写 操作 详解 编程技巧

C++文件读写操作是在程序中常见的操作,它可以将程序产生的数据保存到文件中,也可以从文件中读取数据。本文将详细介绍C++文件读写操作的相关知识。

1. 文件的打开与关闭

在C++中,文件的打开需要使用fstream头文件中的fstream类和其派生类。打开文件的语法如下:


//打开输出文件流

ofstream outFile;

outFile.open("filename.txt");

//打开输入文件流

ifstream inFile;

inFile.open("filename.txt");

//打开读写文件流

fstream file;

file.open("filename.txt");

其中,ofstream类和ifstream类用于输出和输入文件流的打开,fstream类用于读写文件流的打开。打开文件时,需要指定文件名和打开模式(如下表所示)。

| 打开模式 | 含义         |

| -------- | -------------------- |

| ios::in | 以读方式打开     |

| ios::out | 以写方式打开     |

| ios::app | 在文件末尾附加内容  |

| ios::ate | 定位到文件末尾后打开 |

| ios::trunc | 如果文件存在,则先删除文件 |

| ios::binary | 以二进制方式打开文件 |

打开文件成功后,需要及时关闭文件,防止文件资源浪费和文件损坏。关闭文件语法如下:


//关闭输出文件流

outFile.close();

//关闭输入文件流

inFile.close();

//关闭读写文件流

file.close();

2. 文件读取操作

在C++中,使用输入文件流ifstream类进行文件读取操作。文件读取可以分为按字符读取和按行读取两种方式。

按字符读取文件的语法如下:


char ch;

while(inFile.get(ch))

  cout << ch;

按行读取文件的语法如下:


string line;

while(getline(inFile, line))

  cout << line << endl;

以上代码中,inFile表示ifstream对象,get()函数用于读取一个字符,getline()函数用于读取一行字符。当读取到文件结尾时,get()函数会返回false,而getline()函数则会读取到一个空行并返回false。

3. 文件写入操作

在C++中,使用输出文件流ofstream类进行文件写入操作。文件写入可以分为向文件中写入一个字符和向文件中写入一行字符两种方式。

向文件中写入一个字符的语法如下:


outFile.put('a');

向文件中写入一行字符的语法如下:


outFile << "Hello World!" << endl;

以上代码中,outFile表示ofstream对象,put()函数用于在文件中写入一个字符,<<运算符用于在文件中写入一行字符,并在行末自动添加换行符。

4. 文件复制操作

在C++中,可以通过文件读取操作和文件写入操作实现文件的复制。文件复制的语法如下:


//打开读文件流

ifstream inFile("input.txt", ios::binary);

//打开写文件流

ofstream outFile("output.txt", ios::binary);

//读取数据,并写入到输出文件中

char ch;

while(inFile.get(ch)) {

  outFile.put(ch);

}

//关闭文件流

inFile.close();

outFile.close();

以上代码中,首先打开了一个输入文件流和一个输出文件流,然后通过while循环读取输入文件流中的每个字符,再将其写入到输出文件流中。复制结束后,及时关闭文件流。

总之, C++文件读写操作是C++程序开发中的重要技能之一,它可以实现数据的保存、读取和复制等功能。通过本文所介绍的知识,相信大家可以更加熟练地进行文件读写操作了。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复