从文件中读取时不浮动。 C程序

时间:2013-01-05 15:33:53

标签: c

我在这里遇到了我的程序,它从文本文件中读取数据,但它没有获得浮动部分作为浮点数。 它从我的.txt文件读取后打印43.00而不是43.23。 我哪里做错了?

    dir[k].age=atol(strtok(NULL,","));
    dir[k].weight=atol(strtok(NULL,","));
    dir[k].height=atol(strtok(NULL,"\n"));

3 个答案:

答案 0 :(得分:4)

dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

atol读取long。你可能想要atof

答案 1 :(得分:3)

dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

您正在使用转换为整数的函数,因此不知道如何处理小数部分。相反,使用strtof,与ato*函数相比,甚至可以进行错误检查。

答案 2 :(得分:1)

下面:

dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

您正在阅读值