【发布时间】:2021-07-15 20:23:23
【问题描述】:
我创建了一个程序来打开一个文件,读取内容并打印它。但是,“fopen”返回“NULL”。 在“fopen”中,我尝试使用 r 和 a+,但没有。 写入 nella 'fopen' 的文件存在,所以我不知道为什么它返回 NULL。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include <time.h>
#include <errno.h>
#include <iso646.h>
#include <stddef.h>
int main() {
FILE *fp=fopen("prova.txt", "a+");
int vett[50];
int i;
if (fp!=NULL) {
printf("Il file è stato aperto con successo!");
}else{
printf("Il file non è stato aperto con successo");
return 0;
}
for (i = 0; !feof(fp); i++) {
fscanf(fp, "%d", &vett[i]);
printf("\n%d\n",vett[i]);
}
return 0;
}
你能帮帮我吗?
【问题讨论】:
-
你可以打印
errno看看是什么原因。可能你没有权限?您忘记关闭文件了。 -
我的精神力量表明
prova.txt不在当前工作目录中。从命令行而不是 IDE 运行您的程序。并确保您的当前目录中同时包含可执行文件和文本文件。 -
@selbie,打开模式
a+如果文件不存在,应该创建它。 -
你应该在程序中关闭文件使用 fclose(fp) 问题是我认为也许你没有关闭文件确保你关闭它,也许文件损坏或者你没有访问文件