16.C++程序中的文件操作

C++ 中的文件操作是指程序与外部文件进行交互的过程,包括文件的打开、读取、写入和关闭等操作。

1. 文件流对象

C++ 中主要使用标准库中的文件流对象来进行文件操作:

  • 输入文件流std::ifstream
  • 输出文件流std::ofstream

2. 文件操作步骤

文件操作通常遵循以下几个步骤:

  1. 创建文件流对象
  2. 打开文件
  3. 读写数据
  4. 关闭文件

 

#include <iostream>
#include <fstream>
#include <string>

int main() {
    // 创建文件流对象
    std::ofstream outFile;
    std::ifstream inFile;

    // 打开文件
    outFile.open("output.txt");  // 输出文件
    inFile.open("input.txt");    // 输入文件

    // 检查文件是否成功打开
    if (!outFile.is_open()) {
        std::cerr << "Failed to open output file." << std::endl;
        return 1;
    }

    if (!inFile.is_open()) {
        std::cerr << "Failed to open input file." << std::endl;
        return 1;
    }

    // 写入数据
    std::string name = "Alice";
    int age = 10;
    outFile << "Name: " << name << "\nAge: " << age << std::endl;

    // 读取数据
    std::string line;
    while (getline(inFile, line)) {
        std::cout << line << std::endl;
    }

    // 关闭文件
    outFile.close();
    inFile.close();

    return 0;
}

上面主要方法说明:

1.使用 is_open() 方法检查文件是否成功打开

2.使用 eof() 方法检查文件是否结束

3.使用 fail() 方法检查是否有错误发生

4.std::cerr输出错误,与std:cout使用方法一致

下面是一个读取文件内容,然后计算和的例子:

#include <iostream>
#include <fstream>

int main() {
    std::ifstream inFile("numbers.txt");
    if (!inFile.is_open()) {
        std::cerr << "Failed to open numbers.txt" << std::endl;
        return 1;
    }

    int sum = 0;
    int number;
    while (inFile >> number) {
        sum += number;
    }

    std::cout << "Sum: " << sum << std::endl;
    inFile.close();
    return 0;
}

如果没有这个文件numbers.txt,那么运行程序,会出现错误提示:

我们写一个文件保存到同目录下,文件内容:

1
2
3
4
5

然后运行程序:

写入文件信息,比如将刚才的运行结果,保存到result.txt中,那么程序中加入写入文件的代码:

#include <iostream>
#include <fstream>

int main() {
	std::ifstream inFile("numbers.txt");
	if (!inFile.is_open()) {
		std::cerr << "Failed to open numbers.txt" << std::endl;
		return 1;
	}

	int sum = 0;
	int number;
	while (inFile >> number) {
		sum += number;
	}

	std::cout << "Sum: " << sum << std::endl;
	inFile.close();

	std::ofstream outFile("result.txt");
	if (!outFile.is_open()) {
		std::cerr << "Failed to open result.txt" << std::endl;
		return 1;
	}

	std::string name = "Bob";

	outFile << "Sum: " << sum << std::endl;

	outFile.close();


	return 0;


}

 执行完成后,可以打开文件看到结果:

以上就是文件操作的基本流程和方法。

上一篇:Qml 分组动画(二) 动画嵌套(自学笔记)


下一篇:新电脑 Windows 系统初始配置-前言