C语言fscanf函数怎么从文件第三行开始读起??
1个回答
展开全部
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
%* 是“跳过”
[^\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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询