如何让strtok()返回十进制数而不是整数?

时间:2016-10-26 20:53:16

标签: c matrix decimal strtok

我有一个函数可以读入文件并将其作为网格打印出来。

这是文件(输入):

2 2
1.83 5.64
7.36 4.10

但是当它打印出矩阵时,它只返回整数(输出):

2 2
    1.00     5.00 
    7.00     4.00 

如何获得打印十进制数的功能?

通缉输出(即):

2 2
    1.83     5.64 
    7.36     4.10 

1 个答案:

答案 0 :(得分:2)

你的问题不是strtok,而是这样:

double newVal = strtol(value, &ptr, 10);

strtol将字符串转换为long,而不是double,因此它会丢弃小数部分。请改用strtod

double newVal = strtod( value, &ptr );