在C中扫描文件中的特定行

时间:2014-10-20 13:31:07

标签: c file structure

我有一个简单的程序,它从文件中获取一个值并在屏幕上显示它。但是,我的结构似乎不起作用,因为它总是插入文件中的第一个值。

#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”。预期产量:“四”。实际输出:“两个”

1 个答案:

答案 0 :(得分:1)

使用fscanf似乎不仅仅是过度杀伤,而是依赖于平台。为什么不拨打readline足够的时间来获得你想要的线?