因此,我想阅读这些行并将它们明确地保存在行数组中。您能帮我找出问题吗,因为我无法扫描线的最后一个值(距离)。
码:
[...]
typedef struct {
int start;
int end;
double distance;
} data;
[...]
data* vertexes = (data*)malloc(sizeof(data))
FILE* f= fopen("option_c.txt", "r");
if (f == NULL)
{
printf("\n\nThe program couldn't read in the 'option_a.txt' file. The program is going to stop");
return NULL;
}
fscanf(f,"%d\t%d\t%lf", &vertexes[i].start, &vertexes[i].end, &vertexes[i].distance);
printf("%d\t%d\t%lf", vertexes[0].start, vertexes[0].distance, vertexes[0].distance);
[...]
我的文件第一行是
1 0 1
我的输出是:
1 0 0
我丢了文件,无法扫描最后一个值,但是我不知道在哪里搜索问题的根源。我的输入很清楚。
提前致谢。
最佳答案
您确实意识到打印距离是两次,对吗?
另一件事,\t
是'tab'的转义字符,因此我相信它是默认的4个空格,因此,如果只有一个空格字符分隔文件上的值,则最好使用:
fscanf(f,"%d %d %lf", &vertexes[i].start, &vertexes[i].end, &vertexes[i].distance);
关于c - Fscanf无法正确扫描该行中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59205604/