[英]How to open a file with fopen in C?
我创建了一个程序来打开文件,读取内容并打印出来。 但是,“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;
}
你能帮助我吗?
使用prova.txt
文件的绝对路径。 除非您知道当前工作目录是什么,并且知道您需要将其打印出来,否则相对路径是没有意义的。 例如,使用getcwd
获取当前工作目录。 它可能不会像你想象的那样。
如果fopen
返回 NULL,则无法打开该文件(大部分时间是因为它不存在)。 确保该文件与可执行文件位于同一目录中。
您想从文件中读取,因此您应该使用"r"
模式打开它。
你的循环是错误的,你可能想要这个:
for (i = 0; i < sizeof(vett)/sizeof(vett[0]); i++) {
if (fscanf(fp, "%d", &vett[i]) == EOF)
break;
printf("\n%d\n",vett[i]);
}
注意: sizeof(vett)/sizeof(vett[0])
是vett
数组的元素数(本例中为 50)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.