当前位置:首页C++程序设计 > 正文

❤C++中文件操作

作者:野牛程序员:2023-05-26 15:29:52C++程序设计阅读 2380

一、如何正确使用 freopen 进行文件的输入和输出重定向:

#include <iostream>
#include <cstdio>

int main() {
    // 将输入重定向到 input.txt
    freopen("input.txt", "r", stdin);

    // 将输出重定向到 output.txt
    freopen("output.txt", "w", stdout);

    // 读取输入数据,并进行处理
    int a, b;
    std::cin >> a >> b;
    int sum = a + b;

    // 输出结果
    std::cout << "Sum: " << sum << std::endl;

    return 0;
}

使用了 freopen 函数来实现输入和输出的重定向。在示例代码中,freopen("input.txt", "r", stdin) 将输入重定向到名为 "input.txt" 的文件,freopen("output.txt", "w", stdout) 将输出重定向到名为 "output.txt" 的文件。

这样,程序就会从 "input.txt" 文件中读取输入数据,并将输出结果写入到 "output.txt" 文件中。

对于文件的打开模式和关闭操作,这里使用了标准输入流 std::cin 和标准输出流 std::cout,它们会自动与重定向的文件关联起来,所以不需要显式地使用 FILE* 指针和 fclose 函数来进行操作。

二、用 fopen 打开后用fscanf 和 fpintf 举例

当使用 fopen 打开文件后,可以使用 fscanf 函数来读取文件中的数据,使用 fprintf 函数将数据写入文件。下面是一个示例代码,演示了如何使用 fopenfscanffprintf 进行文件的读取和写入操作:

#include <iostream>
#include <cstdio>

int main() {
    // 打开输入文件和输出文件
    FILE* inputFile = fopen("input.txt", "r");
    FILE* outputFile = fopen("output.txt", "w");

    if (inputFile == NULL || outputFile == NULL) {
        std::cerr << "Failed to open files!" << std::endl;
        return 1;
    }

    // 读取输入数据
    int a, b;
    fscanf(inputFile, "%d %d", &a, &b);

    // 计算和
    int sum = a + b;

    // 将结果写入输出文件
    fprintf(outputFile, "Sum: %d\\n", sum);

    // 关闭文件
    fclose(inputFile);
    fclose(outputFile);

    return 0;
}

在这个示例中,我们使用 fopen 分别打开了输入文件 "input.txt" 和输出文件 "output.txt"。

使用 fscanf(inputFile, "%d %d", &a, &b) 从输入文件中读取两个整数,这里假设文件中的数据是以空格分隔的整数。

然后,我们计算这两个整数的和,将结果存储在 sum 变量中。

接下来,使用 fprintf(outputFile, "Sum: %d\\n", sum) 将结果写入输出文件,这里假设结果以 "Sum: " 开头,后面是计算的和。

最后,使用 fclose 函数关闭输入文件和输出文件。

请注意,示例代码中添加了错误检查,以确保文件成功打开。如果打开文件失败(例如文件不存在或无法打开),程序将打印错误消息并返回 1。

这个示例演示了如何使用 fopenfscanffprintf 进行文件的读取和写入操作。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击