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

C 如何让strtok()返回十进制数而不是整数?,c,matrix,decimal,strtok,C,Matrix,Decimal,Strtok,我有一个函数,它读入一个文件并将其打印成网格 这是文件(输入): 但当它打印出矩阵时,它只返回整数(输出): 如何让函数打印出十进制数 想要的输出(即): 你的问题不是strtok,而是: double newVal = strtol(value, &ptr, 10); strtol将字符串转换为long,而不是double,因此它将丢弃小数部分。改用strtod double newVal = strtod( value, &ptr ); “我有一个函数,可以读入文件并打印

我有一个函数,它读入一个文件并将其打印成网格

这是文件(输入):

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

如何让函数打印出十进制数

想要的输出(即):


你的问题不是strtok,而是:

double newVal = strtol(value, &ptr, 10);
strtol
将字符串转换为
long
,而不是
double
,因此它将丢弃小数部分。改用strtod

double newVal = strtod( value, &ptr );

“我有一个函数,可以读入文件并打印”-->发布代码。
2 2
    1.83     5.64 
    7.36     4.10 
double newVal = strtol(value, &ptr, 10);
double newVal = strtod( value, &ptr );