温馨提示×

首页 > 教程 > 编程开发 > C++语言编程基础 > 文件流和文件指针

文件流和文件指针

在C++中,文件操作是通过文件流(fstream)和文件指针(FILE*)来实现的。文件流是C++的一种类,提供了对文件进行输入和输出操作的方法,而文件指针是C语言中对文件进行操作的方法。

文件流(fstream)

文件流可以分为输入流和输出流,分别用于从文件中读取数据和向文件中写入数据。

1. 打开文件

要使用文件流,首先需要打开文件。可以使用fstream类的构造函数来打开文件,也可以使用open()方法来打开文件。

#include <fstream>

std::ifstream infile("input.txt");  // 打开一个输入文件
std::ofstream outfile("output.txt");  // 打开一个输出文件

// 使用open()方法打开文件
std::ifstream infile;
infile.open("input.txt");

2. 读取文件内容

使用文件流对象的>>运算符可以从文件中读取数据,使用getline()方法可以读取一行数据。

int num;
infile >> num;  // 从文件中读取一个整数

std::string line;
getline(infile, line);  // 从文件中读取一行字符串

3. 写入文件内容

使用文件流对象的<<运算符可以向文件中写入数据。

int num = 10;
outfile << num;  // 向文件中写入一个整数

std::string line = "Hello, world!";
outfile << line;  // 向文件中写入一行字符串

4. 关闭文件

使用文件流对象的close()方法可以关闭文件。

infile.close();  // 关闭输入文件
outfile.close();  // 关闭输出文件

文件指针(FILE*)

文件指针是C语言中对文件进行操作的方法,使用fopen()函数打开文件,使用fread()和fwrite()函数读取和写入文件内容。

1. 打开文件

使用fopen()函数打开文件。

#include <cstdio>

FILE* file = fopen("input.txt", "r");  // 以只读模式打开文件

2. 读取文件内容

使用fread()函数读取文件内容。

char buffer[256];
fread(buffer, 1, 256, file);  // 从文件中读取256个字节的数据

3. 写入文件内容

使用fwrite()函数写入文件内容。

char buffer[256] = "Hello, world!";
fwrite(buffer, 1, strlen(buffer), file);  // 向文件中写入字符串

4. 关闭文件

使用fclose()函数关闭文件。

fclose(file);  // 关闭文件指针

以上是使用文件流和文件指针进行文件操作的基本方法,根据具体需求选择合适的方法进行文件操作。