注册 登录
编程论坛 C++教室

C++问题,求解

塔比特 发布于 2012-07-11 16:18, 310 次点击
01.011    365    14996540.12
依据空格判断分成三个字符串传到数组里存储,并且判断第一个字符串有没有小数点,有小数点只保留小数点后一位,没有小数点全保留,麻烦把代码写一下,先说声谢谢了
3 回复
#2
peach54602012-07-12 13:38
boost::split
#3
rjsp2012-07-12 14:50
以下是引用peach5460在2012-7-12 13:38:01的发言:

boost::split
有这么复杂吗?
程序代码:
#include <stdio.h>
int main()
{
    const char* str = "01.011    365    14996540.12";
    double a;
    int b;
    double c;

    if( 3 == sscanf(str,"%lf%d%lf",&a,&b,&c) )
    {
        a = (int)(a*10)/10.0;
        printf( "%.1lf\t%d\t%lf\n", a, b, c );
    }

    return 0;
}
真正的问题在于“有小数点只保留小数点后一位,没有小数点全保留”这一句话,计算机中使用的是浮点数,什么“保留小数点后一位”等都是瞎扯蛋(除非自己写个可以无限精度的自定义类型)
#4
peach54602012-07-12 15:59
如果有库函数,干嘛不用
1