用c编写一个程序,计算一个文件中的单词总数

Write a program that will count the total number of words in a file in c

我开始学习 C,我必须编写一个程序来计算文件中的字数。我不知道文件的大小,那么如何在不知道大小的情况下声明一个数组呢?我知道 number_of_words 没有给出,但我该怎么办? (在我的代码中,根据赋值说明,我不应该使用 fgetsEOF

int main(int argc, char const *argv[]) {
    char* word[] = {"/usr/bin/ls", "-1", NULL};
    int number_of_words;
    int i;
    word = malloc (number_of_words * sizeof(char));
    FILE* f = fopen (argv[1], "r");
    fscanf(f, "%s", &word);
    if ( f == NULL) {
        return -1; 
    }

    for (i = 0; word[i] != NULL; i++) {
        return i;
    }
}

对于这类问题,正如我从一些编译器课程中了解到的那样,您应该动态地增长数组——malloc 您选择的起始大小,跟踪如何它已满,realloc 如果它已满。

我赞同Bing Bang 的感觉,教授可能会指导您正确的方向。我发现我的教授很有帮助。