计算C中文件中的字符 - 非常基本

时间:2014-07-07 05:32:51

标签: c file fgetc

这是我第一次使用文件,虽然我得到了一般的想法,但我在实现简单算法时遇到了一些问题。

例如,我正在尝试编写一个计算给定文件中字符数的代码。字母数。

这是我的代码:

#include<stdio.h>
FILE *fp;
void main()
{
    int counter=0;
    fp=fopen("G:\hellostackoverflow.txt","r");
    while(fgetc(fp)!=EOF)
        counter++;
    printf("there are %d letters", counter);
}

当我运行它时,我遇到了一个错误,类似于:

调试断言失败!

表达式(流!= NULL)

有关如何......

的信息

为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:4)

听起来你的程序无法读取输入文件。你应该总是检查fopen为null来检测这类问题

fp=fopen("G:\hellostackoverflow.txt","r");
if(fp == NULL){
     printf("could not open file\n");
     return 1;
}

我的猜测是问题是路径名中未反转的反斜杠。尝试转义它"G:\\hellostackoverflow.txt"或将文件移动到不需要反斜杠的其他位置。