3

我的程序(程序的一部分)有问题。要继续进行,我需要以某种方式读取文件的一行,但这必须是特定的行。我对C和文件真的很陌生......

我想要做的是要求用户输入他们想要阅读的特定行,然后将其显示给他们。目前,当我尝试从该行打印文本时,它只给我第 1 行的文本。请注意,文本是指整数,因为该文件在一列中包含 55 个整数。所以它看起来像这样:12 18 54 16 21 64 .....

有什么办法可以达到我的需要吗?

#include <stdio.h>

FILE *file;

char name[15];
int line;
int text;

file = fopen("veryimportantfile.txt","r");
if(file==NULL)
{
    printf("Failed to open");
    exit(1);
}


printf("Your name: ");
scanf("%s",&name);
printf("\Enter the line number you want to read: ");
scanf("%d",&line);


fscanf(pFile, "%d", &line);
printf("The text from your line is: %d",line);
4

1 回答 1

5

怎么样:

  • 使用 , 从文件中逐个读取字符getc,直到遇到所需数量的换行符减 1
  • 使用循环读取整数和fscanf("%d", ...)

就像是:

int ch, newlines = 0;
while ((ch = getc(fp)) != EOF) {
    if (ch == '\n') {
        newlines++;
        if (newlines == line - 1)
            break;
    }
}

if (newlines != line - 1)
    /* Error, not enough lines. */

/* fscanf loop */
于 2013-02-14T22:27:40.913 回答