以下代码给了我一个段错误,我不知道为什么。除了最后返回0之外,它是我的主函数中唯一的代码。此外,它成功打印“fr open。”
//create file pointer and open file
FILE *fr;
fr = fopen("IntegerArray.txt", "r");
if(fr = NULL){
printf("fr is null\n");
}
else{
printf("fr opened\n");
}
int ch = fgetc(fr);
ch = fgetc(fr);
答案 0 :(得分:5)
您正在为您打开的文件*分配NULL。
更改
if(fr = NULL){
到
if(fr == NULL){
答案 1 :(得分:1)
fr = NULL
条件中的if
是作业。
您可能需要进行比较:fr == NULL
。
答案 2 :(得分:0)
你得到了这一部分:
if (fr = NULL)
应该是:
if (fr == NULL)
或更好:
if (NULL == fr)
然而,我只是想我会提到你的观点:Also, it successfully prints "fr opened."
由于意外分配,它再次打印出来。
if (fr = NULL)
首先将fr
设置为NULL
,因此检查基本上成为:
if(fr)
fr
NULL
评估为if(0)
,因此您看到了else
s“fr opened”消息。