C语言fscanf函数怎么从文件第三行开始读起??

另外fscanf(fp,"%*[^\n]%*c");每个符号是什么意思?求详解~!

for (i=0;i<2;i++) fscanf(fin,"%*[^\n]%*c"); 跳过2行。
%* 是“跳过”
[^\n] 字符串的分隔符是 "\n", 中括号里可以写 分隔符 表
%*[^\n] 跳过 \n 前的所有 字符串。
%*c 是“跳过”行尾 的 换行符

#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fin;
int x,y;
int i;
fin=fopen("a.txt","r");
for (i=0;i<2;i++) fscanf(fin,"%*[^\n]%*c"); // 跳2 行
fscanf(fin,"%d %d",&x,&y); // 读 2 个 int
printf("%d %d\n",x,y); // 打出 3 33
fclose(fin);
}

文件例子:
1 2 3
2 345 56
3 33 333
4 444 444追问

那如果我只要读取文件例子里的“333”呢?怎么取一行的中间一段?

追答

跳2行后
用 %*d %*d %d 格式 -- 跳2个整形数,读1个整形数。
fscanf(fin,"%*d %*d %d",&x);

温馨提示:答案为网友推荐,仅供参考
相似回答