计算C中的字符数

计算C中的字符数,c,file,count,char,numbers,C,File,Count,Char,Numbers,我只需要计算我的“f”文件中的字符数。当我计算一个字符串中的字符数时,我得到了它的真实数字,但当我在我的.txt中按“回车”键并创建新行时,我丢失了2个字符。因此,有4个字符串和15个字符,我的程序告诉我文件中只有9个字符。请帮我数一数这个不幸的角色… 以下是C语言的代码: while (!feof(f)) { bool space = 1; //remembering last char (was it space or not) for (int i = 0; i <

我只需要计算我的“f”文件中的字符数。当我计算一个字符串中的字符数时,我得到了它的真实数字,但当我在我的.txt中按“回车”键并创建新行时,我丢失了2个字符。因此,有4个字符串和15个字符,我的程序告诉我文件中只有9个字符。请帮我数一数这个不幸的角色…
以下是C语言的代码:

while (!feof(f)) {
    bool space = 1; //remembering last char (was it space or not)
    for (int i = 0; i < len; ++i) { //running till the end of string
        if (a[i] == ' ') {space = 1;} 
        else if (a[i] != '\0' && a[i] != '\n') {
            chars++;
            if (space == 1) {
                words++; //and counting the words
                space = 0;
            }
        }
    }
}
while(!feof(f)){
bool space=1;//记住最后一个字符(是否为空格)
对于(int i=0;i
在我看来,以下几点就足够了:

int c; 
while ((c=fgetc(f))!=EOF) {
    if (c == ' ' || c=='\n') {
         words++;
    } 
    else {
        chars++;
    }
}

chars
words
是否初始化为0?我建议您不要在SO帖子中使用淫秽语言。现在编辑它。我从来没有看到你从
f
中得到什么。请提供一个。永远不要在(!feof(f))时写入
。它总是错的。
while(c=fgetc(f))
不会在EOF停止。当((c=fgetc(f))!=EOF)
时,它不应该是
?当然,这并不意味着,如果你计算空格字符,你就有了新单词。您应该看到,如果最后一个字符是空格,而当前字符不是。那么你就有了真实的字数;)