初学者帮助:用C解析

时间:2015-04-17 22:19:30

标签: c parsing

我对这个解析概念比较陌生。这是一个简单的,但对我来说,它是一个令人心碎的例子。

我有一个包含一系列数字和字母的文本文件。在文本的每一行中都有三个要素。一封信,另一封信和一个数字。将第一个视为源,将第二个视为目标,将数字视为大小。读取它们并将它们放入结构数组中,并能够根据大小排列它们。 " a,b,1"为第一行。 " q,s,5"最后,以排列的格式(根据大小)打印它们

介意给我一个线索或起点? 更新:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(){
FILE *fp;
fp= fopen("file.txt", "O");
int i;
struct arrangement{
       char source;
       char dest;
       int cost;
       };
struct arrangement rng[22];

for(i=0; i<22 ; i++){
         fscanf(fp, "%c, %c, %d", rng[i].source, rng[i].dest, rng[i].cost);
         printf("%c, %c, %d", rng[i].source, rng[i].dest, rng[i].cost);
}

getch();
return 0;

}

这是否能够存储阵列中的所有元素?我仍然不知道如何根据尺寸/成本安排这些元素,而不会遗漏源和目的地。

1 个答案:

答案 0 :(得分:0)

fscanf需要指向变量的指针,而不是变量本身。您的代码可能会导致奇怪的结果,具体取决于编译器(gcc可能会发出警告/错误)和平台。 如果达到EOF,你也应该打破循环。然后,我可以提供最后使用的条目(根据输入可能部分有效或无效)。