遇到一个问题,我写了一些代码,我想打开一个文本文件,然后显示的名称和等级的人说,文本文件。我使用的代码如下
#include <stdio.h>
#include <stdlib.h>
struct student
{
char name[10];
int marks[4];
};
int main()
{
struct student s[5];
int i=0;
FILE *fp=fopen("Grades.txt","r");
if(fp==NULL)
{
printf("Error Opening the input file\n");
return-1;
}
else
printf("File Opening successfully\n");
while(!feof(fp))
{
fscanf(fp,"%s", s[i].name);
for(int j=0; j<4; j++)
fscanf(fp,"%d", &s[i].marks[j]);
i++;
}
printf("The Grade details ....\n");
for(int i=0; i<5; i++)
{
printf("%s\n",s[i].name);
for( int j=0; j<4; j++)
printf("%d\n", s[i].marks[j]);
}
fclose(fp);
return 0;
}
无论我如何构造代码,我得到的错误文件\a.exe '已退出,代码为-1(0xffffffff)。
如果我做错了什么,请让我知道!
彼得55 66 44 67莉莉100 90 43 89约翰34 56 78 65玛丽45 56 78 90亚历克斯30 45 65 54
2条答案
按热度按时间dy1byipe1#
程序可能返回-1,因为它无法打开
Grades.txt
:如果从Visual Studio/Visual Studio代码内部运行此文件,则
Grades.txt
可能与可执行文件不在同一文件夹中。如果你真的想硬编码文件路径,尝试指定一个 * 绝对 * 路径而不是相对路径:
fopen("C:\Users\Example\Desktop\Grades.txt","r");
"Grades.txt"
本身是一个相对路径,因此它需要与程序存在于相同的文件夹/目录中。jckbn6z72#
转到文件〉打开文件〉选择文本文件。