【发布时间】:2020-10-04 08:46:29
【问题描述】:
例如,我有一个包含“我今天过得很愉快!”的文本文件,我想计算该文件中的每个字符和单词。 在示例中“有 3 a, 1 m”等。
我是 C 的新手,知道如何打开文件,如何在文件中找到特定的字符或单词,但无法弄清楚。你能帮我吗?
【问题讨论】:
例如,我有一个包含“我今天过得很愉快!”的文本文件,我想计算该文件中的每个字符和单词。 在示例中“有 3 a, 1 m”等。
我是 C 的新手,知道如何打开文件,如何在文件中找到特定的字符或单词,但无法弄清楚。你能帮我吗?
【问题讨论】:
您需要学习的第一件事是如何一次打开和处理一个字符的文件。您可以使用以下程序执行此操作:
#include <stdio.h>
int main(int argc, char *argv[]) {
// Must provide one argument, the file to process.
if (argc != 2) {
fprintf(stderr, "Usage: myprog <inputFileName>\n");
return 1;
}
// Try to open the file.
FILE *inFile = fopen(argv[1], "r");
if (inFile == NULL) {
fprintf(stderr, "Cannot open '%s'\n", argv[1]);
return 1;
}
// Process file, character by character, until finished.
int ch;
while ((ch = fgetc(inFile)) != EOF) {
putchar(ch); // <accumulate>
}
// Close file and exit.
fclose(inFile);
// <output>
return 0;
}
然后就是将putchar 调用更改为您需要做的任何事情(累积字符数)并在退出main 函数之前输出该信息。
【讨论】: