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];
};
[您似乎遭受了魔术般的普遍误解,即%[]
在某种程度上可以用作后续s
的修饰符。确实不是,它是它自己的转换说明符。
因此,除非换行符后接星号和s
,否则您的转换将失败。