3

プログラム (プログラムの一部) に問題があります。さらに先に進むには、何らかの方法でファイルの行を読み取る必要がありますが、それは特定の行でなければなりません。私はCとファイルに本当に慣れていません...

私がやろうとしているのは、読みたい特定の行を入力してから表示するようにユーザーに依頼することです。現時点では、行からテキストを印刷しようとすると、行 1 からのみテキストが表示されます。ファイルは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 を引いた数になるまで、ファイルから文字を 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 に答える