如何使用 VSCode 打开文本文件

How to Open a text file utilising VSCode

提问人:ThePhycho 提问时间:3/7/2023 更新时间:3/7/2023 访问量:512

问:

我写的一些代码遇到了问题,我想打开一个txt文件,然后在所述文本文件中显示人员的姓名和等级。我使用的代码如下


#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 John 34 56 78 65 玛丽 45 56 78 90 亚历克斯 30 45 65 54

c visual-studio-code 目录 fopen feof

评论

1赞 Claies 3/7/2023
我不确定 VSCode 与这个问题有什么关系;这不是代码错误的原因......
0赞 ThePhycho 3/7/2023
所以,我的代码就是问题所在,明白了。你知道为什么吗?我不是 100% 确定故障出在哪里。
0赞 starball 3/7/2023
您是否尝试过自己调试程序?进行一些调试可以帮助您提供最小的可重现示例
0赞 Claies 3/7/2023
该代码似乎在 onlinegdb.com/xumw6yXTR 上运行良好 如果我不得不猜测,我会说您的文件与您的项目不在同一个文件夹中,或者命名不正确(也许在 mac/linux 上区分大小写?从您发布的内容来看,这并不完全明显。另外,看起来您可能有编译器选项将您的 exe 放在文件不在的子文件夹中?一切都只是猜测。Grades.txtfile\a.exe
0赞 ThePhycho 3/7/2023
啊,我明白了,下次我会试着缩小我的问题范围。感谢您的协助

答:

0赞 kiwi 3/7/2023 #1

该程序可能返回 -1,因为它无法打开:Grades.txt

FILE* fp = fopen("Grades.txt","r");
if (fp == NULL)
{
    printf("Error Opening the input file\n");
    return -1;
}

如果从 Visual Studio/Visual Studio Code 内部运行此文件,则它可能与可执行文件不在同一文件夹中。Grades.txt

如果您真的想对文件路径进行硬编码,请尝试指定绝对路径而不是相对路径:fopen("C:\Users\Example\Desktop\Grades.txt","r");

"Grades.txt"它本身是一个相对路径,因此它需要与程序存在于同一个文件夹/目录中。