MST
星途 面试题库

面试题:C语言文件输入输出之格式化读写

在C语言中,使用`fscanf`和`fprintf`函数对文件进行格式化输入输出,请编写一个程序,从一个文本文件中读取多个整数和字符串,处理后将结果格式化写入另一个文件。假设文本文件格式为每行一个整数和一个字符串,以空格分隔。
40.4万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

int main() {
    FILE *inputFile, *outputFile;
    int num;
    char str[100];

    // 打开输入文件
    inputFile = fopen("input.txt", "r");
    if (inputFile == NULL) {
        perror("无法打开输入文件");
        return 1;
    }

    // 打开输出文件
    outputFile = fopen("output.txt", "w");
    if (outputFile == NULL) {
        perror("无法打开输出文件");
        fclose(inputFile);
        return 1;
    }

    while (fscanf(inputFile, "%d %99s", &num, str) != EOF) {
        // 处理数据,这里简单示例为将整数加倍
        num *= 2;
        // 写入到输出文件
        fprintf(outputFile, "处理后的整数: %d, 字符串: %s\n", num, str);
    }

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

    return 0;
}

在上述代码中:

  1. 首先使用fopen函数分别打开输入文件和输出文件。如果打开失败,使用perror打印错误信息并结束程序。
  2. 使用fscanf从输入文件中按格式读取整数和字符串,每次读取一行中的一个整数和一个字符串。
  3. 对读取到的整数进行简单处理(这里是加倍)。
  4. 使用fprintf将处理后的整数和原始字符串按特定格式写入输出文件。
  5. 最后使用fclose关闭输入和输出文件。

注意确保当前目录下存在input.txt文件,且文件格式符合每行一个整数和一个字符串,以空格分隔。程序运行后会在当前目录下生成output.txt文件。