簡體   English   中英

無法正確將雙數導入C程序

[英]Can't correctly import double numbers into C program

我有一個這樣格式化的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 實際上,它正確地導入了除double以外的所有數據。 我究竟做錯了什么?

您使用了錯誤的說明符來讀取double 這將調用未定義的行為。 您需要%lf

while (5 == fscanf(data_file, "%s %s %lf %s %d", &city_dep, &city_des, &km, &vehicle, &time))
{

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM