【发布时间】:2014-05-29 17:09:42
【问题描述】:
我有一个这样格式化的 txt 文件:
MyDepartureTown MyDestinationTown 123.45 Vehicle 12
我正在尝试将数据导入我的 C 程序。这是我用来实现这一点的代码:
void import_city_info(Grafo *G)
{
char city_dep[20];
char city_des[20];
double km;
char vehicle[12];
int time;
FILE *data_file = fopen("data/routes.txt", "r");
if (data_file == NULL)
{
fprintf(stderr, "Errore. Impossibile aprire il file.\n");
exit(EXIT_FAILURE);
}
while (5 == fscanf(data_file, "%s %s %f %s %d", &city_dep, &city_des, &km, &vehicle, &time))
{
printf("%2.3f\n", km);
//more code...
}
}
当我尝试打印出双数时,它会输出0.00。它实际上正确导入了除双精度之外的所有数据。我做错了什么?
【问题讨论】:
-
注意:考虑使用长度和
"%s"来防止溢出。"%19s %19s %lf %11s %d"