在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
是换行符。为了写一个真正的反斜杠,你需要使用“\\”。