我无法在C中正确读取和打印我的文件,只打印出'0'

问题描述 投票:0回答:1
struct patient getPatient(FILE *fptr)
{
    char fileInput[200];
    int noOfEntries = 0, n;
    while (!feof(fptr))
    {
        fscanf(fptr, "%499[^\n]*s", fileInput);

        for (n = 0; n < FILENAME; n++ )
        {
        printf("%500c\n", fileInput);
        }
    }
}

这是正在读取文件的位置,我在另一个函数中将其打开。

FILE *openFile(void)
{
    FILE *fptr;
    char filename[FILENAME];
    printf("Enter filename: ");
    scanf("%s", filename);
    if (!(fptr = fopen(filename, "r")))
    {
        printf("Can't open file %s", filename);
        exit(1);
    }
    return fptr;
}

他们俩都在这里叫。

FILE *fptr = openFile();
getPatient(fptr);

它的打开方式不正确或无法正确读取,我正在将其读取为结构。

struct patient
{
    char entryLine[500];
};
c file file-handling
1个回答
2
投票

[您似乎遭受了魔术般的普遍误解,即%[]在某种程度上可以用作后续s的修饰符。确实不是,它是它自己的转换说明符。

因此,除非换行符后接星号和s,否则您的转换将失败。

© www.soinside.com 2019 - 2024. All rights reserved.