2

我在这里坚持使用我的程序,它从文本文件中读取数据,但它没有将浮点部分作为浮点数。从我的 .txt 文件中读取后,它会打印 43.00 而不是 43.23。我哪里做错了?

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

3 回答 3

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

atol读取long. 你可能想要atof

于 2013-01-05T15:35:54.483 回答
3
dir[k].weight=atol(strtok(NULL,","));
dir[k].height=atol(strtok(NULL,"\n"));

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

于 2013-01-05T15:36:01.300 回答
1

这里:

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

您正在读取值

于 2013-01-05T15:38:55.293 回答