Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中计算文件中的字符-非常基本_C_File_Fgetc - Fatal编程技术网

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

在C中计算文件中的字符-非常基本,c,file,fgetc,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("the

这是我第一次处理文件,虽然我了解了基本概念,但在实现简单算法时遇到了一些问题

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

这是我的代码:

#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);
}
#包括
文件*fp;
void main()
{
int计数器=0;
fp=fopen(“G:\hellostackoverflow.txt”、“r”);
while(fgetc(fp)!=EOF)
计数器++;
printf(“有%d个字母”,计数器);
}
当我运行它时,我遇到了一个错误,大致如下:

调试断言失败

表达式(流!=NULL)

有关如何


为什么会发生这种情况?我如何修复它?

听起来您的程序无法读取输入文件。您应该始终检查fopen的null以检测此类问题

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

我猜问题在于路径名中未转义的反斜杠。尝试对其进行转义
“G:\\hellostackoverflow.txt”
或将文件移动到不需要反斜杠的其他位置。

听起来您的程序无法读取输入文件。您应该始终检查fopen的null以检测此类问题

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

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

明显的问题是,您需要转义路径中的反斜杠。您需要选中
fp!=从文件中读取之前为空。如果is为null,则表示您无法打开该文件。问题确实是该文件未打开,添加另一个反斜杠修复了该问题。明显的问题是您需要在路径中转义反斜杠。您需要选中
fp!=从文件中读取之前为空。如果is为null,则表示您无法打开该文件。问题确实是该文件未打开,添加另一个反斜杠修复了该问题。它正在工作!非常感谢。你能解释一下是什么问题吗?“转义反斜杠”是什么意思?C字符串使用反斜杠和其他字符的组合来写下特殊字符。例如,
\n
是换行符。为了写一个真正的反斜杠,你需要使用“\\\”。它正在工作!非常感谢。你能解释一下是什么问题吗?“转义反斜杠”是什么意思?C字符串使用反斜杠和其他字符的组合来写下特殊字符。例如,
\n
是换行符。为了写一个真正的反斜杠,你需要使用“\\”。