【发布时间】:2015-03-14 10:59:17
【问题描述】:
我有一个 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 次。
也许我应该scanf?如果有人能告诉我如何使它工作,我将不胜感激。
【问题讨论】:
-
您可能想在这里进行 RTFM:man7.org/linux/man-pages/man3/scanf.3.html(提示:
sscanf()是从“字符串”扫描!) -
同时测试
fopen()的结果是否成功,如果fid没有分配NULL。 -
使用
fscanf。例如fscanf(fid,"%d%d%d",&x,&y,&z); -
谢谢,它正在工作。