我想读一个长达10行的txt文件所有行的文件格式如下:
1 1 8
2 2 3
3 1 15
4 2 7
我正在尝试编写一个函数,它将只读取由传递给它的int提供的行我想使用for循环遍历行而不扫描任何内容,但是我不知道如何实现它。
到目前为止,我的函数看起来是这样的,for循环尚未正确实现。
void process(int lineNum, char *fullName)
{
int ii, num1, num2, num3;
FILE* f;
f = fopen(fullName, "r");
if(f==NULL)
{
printf("Error: could not open %S", fullName);
}
else
{
for (ii=0 (ii = 0; ii < (lineNum-1); ii++)
{
/*move through lines without scanning*/
fscanf(f, "%d %d %d", &num1, &num2, &num3);
}
printf("Numbers are: %d %d %d \n",num1, num2, num3);
}
}
最佳答案
您几乎完成了,但只需更改格式说明符。下面的代码将读取目标行之前的行,但忽略它所读取的内容。
for (ii=0 (ii = 1; ii < (lineNum-1); ii++)
{
/*move through lines without scanning*/
fscanf(f, "%*d %*d %*d%*c");
// fscanf(f, "%*d %*d %*d\n");
}
fscanf(f,"%d%d%d",&num1,&num2,&num3);
关于c - 使用fscanf从给定行读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16556894/