C中的小写字符到大写字符并写入文件

Lowercase characters to Uppercase characters in C & writing to file

我正在从一个文件中读取内容以将其读入 C 中的 char 数组。如何将文件中的所有小写字母更改为大写字母?

这是一个可能的算法:

  1. 打开一个文件(我们称之为 A)- fopen()
  2. 打开另一个文件进行写入(暂且称之为 B)- fopen()
  3. 读取A的内容——getc()或fread();随心所欲
  4. 将您阅读的内容大写 - toupper()
  5. 将 4 步的结果写入 B - fwrite() 或 fputc() 或 fprintf()
  6. 关闭所有文件句柄 - fclose()

以下为C语言编写的代码:

#include <stdio.h>
#include <ctype.h>

#define INPUT_FILE      "input.txt"
#define OUTPUT_FILE     "output.txt"

int main()
{
    // 1. Open a file
    FILE *inputFile = fopen(INPUT_FILE, "rt");
    if (NULL == inputFile) {
        printf("ERROR: cannot open the file: %s\n", INPUT_FILE);
        return -1;
    }

    // 2. Open another file
    FILE *outputFile = fopen(OUTPUT_FILE, "wt");
    if (NULL == inputFile) {
        printf("ERROR: cannot open the file: %s\n", OUTPUT_FILE);
        return -1;
    }

    // 3. Read the content of the input file
    int c;
    while (EOF != (c = fgetc(inputFile))) {
        // 4 & 5. Capitalize and write it to the output file
        fputc(toupper(c), outputFile);
    }

    // 6. Close all file handles
    fclose(inputFile);
    fclose(outputFile);

    return 0;
}