【发布时间】:2016-07-17 17:31:25
【问题描述】:
我是 C 编程的新手。我有一个输入文件,我想跳过输入文件的第一行并尝试编写输出文件。我的文件包含一些图形信息。我想从输入文件而不是用户输入中获取 u,v,w 值。但是我没有得到 u,v,w 的值。
printf("Enter (u v w):\n");
for(i = 0; i < edges; ++i){
scanf("%d%d%d", &u, &v, &w);
}
我试过这样:
fgets(buffer, 1024, inputFile);
while( ( ch = fgetc(inputFile) ) != EOF )
{
sscanf(buffer, "%d%d%d", &u, &v, &w);
}
【问题讨论】:
-
数据是什么样的?
-
它只包含如下数字:1 2 3
-
你的算法说:读一行。然后,在一次从文件中丢弃一个字符的同时,重复扫描第一行(也是唯一的)读取的三个
int值?不确定这是你的意图,但我猜不是。 -
不,只跳过第一行对我来说就足够了。其他行包含图形信息。
-
某事告诉我
while( ( ch = fgetc(inputFile) ) != EOF )应该是:while( fgets(buffer, 1024, inputFile) ),或类似的东西。假设您打算重复扫描buffer以获取 3 个int值是执行每行处理并读取前三个(并且仅前三个)int值,忽略每行的其余任何无关内容。
标签: c file input file-io output