我有一个txt文件,我想从中读取。我知道我必须阅读20行(每行包含3个数字变量,例如10 5 6等等)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int x,y,z;
int counter = 0;
FILE *fid;
fid = fopen(argv[1],"r");
while(counter<20){
sscanf(fid,"%d%d%d",&x,&y&z);
//some operations made on x,y,z
counter=counter+1;
}
fclose(fid) ;
return 0;
}
不幸的是它不起作用。
我想浏览文件并使用sscanf(fid,"%d%d%d",&x,&y,&z)
20次。
也许我应该扫描一下?如果有人能告诉我如何使其工作,我将不胜感激。
答案 0 :(得分:1)
sscanf
获取类型const char *
的第一个参数。您将第一个参数传递为FILE *
。
您可以使用:
fscanf
OR
fgets
与sscanf
答案 1 :(得分:0)
sscanf
应更改为fscanf
fscanf
扫描文件。
sscanf
扫描字符串。
fscanf
函数将指定流的当前位置的数据读入参数列表中条目给出的位置(如果有)。参数列表(如果存在)遵循格式字符串。
int fscanf (FILE *:stream, const char *format, …);
2.sscanf function
sscanf
函数将数据从缓冲区读入参数列表给出的位置。到达缓冲区指向的字符串的末尾等同于fscanf函数到达文件结尾(EOF)。如果缓冲区指向的字符串和格式重叠,则不会定义行为。
int sscanf(const char *buffer, const char *format, …);