我的程序(程序的一部分)有问题。为了进一步进行,我需要以某种方式读取文件的一行,但那必须是特定的一行。我对C和文件真的很陌生。。。
我想做的是让用户输入他们想要读取的特定行,然后将其显示给他们。目前,当我尝试从第1行打印文本时,它只给我第1行的文本。请注意,我所说的文本是指整数,因为文件由一列中的55个整数组成。看起来是这样的:121854162164….
有什么办法可以达到我的需要吗?
#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);
怎么样:
- 使用
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 */