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);