我有一个简单的程序,它从文件中获取一个值并在屏幕上显示它。但是,我的结构似乎不起作用,因为它总是插入文件中的第一个值。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
void insert(void);
int lineNum;
FILE *fPresDr;
struct store09
{
char defPsDr[16];
}stock09[16];
int main()
{
printf("Type the line number you want to view");
scanf("%d",&lineNum);
insert();
printf("\n\nThe value in file is: %s",stock09[lineNum].defPsDr);
getch();
}
void insert(void)
{
fPresDr=fopen("TIRpresD.txt","r");
fscanf(fPresDr,"%127[^\n]%*c",stock09[lineNum].defPsDr);
fclose(fPresDr);
}
示例文件:
two
seven
four
eleven
输入:“3”。预期产量:“四”。实际输出:“两个”
答案 0 :(得分:1)
使用fscanf
似乎不仅仅是过度杀伤,而是依赖于平台。为什么不拨打readline
足够的时间来获得你想要的线?