全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

C++ to_string函数详解

发布时间:2023-11-25 12:53:48
发布人:xqq

一、c++ to_string保留小数点后六位

使用to_string函数可以将数字转换为字符串。默认情况下,to_string默认输出6位小数,但这不一定是您想要的。C ++ 11引入了std :: to_string的另一个重载版本,该版本接受一个小数位数参数。


#include 
#include 
using namespace std;
int main() {
    double num = 12.3456789;
    string str1 = to_string(num);
    string str2 = to_string(num).substr(0, 9);
    string str3 = to_string(num).substr(0, to_string(num).find(".", 0)+7);
    cout << "str1: " << str1 << endl;
    cout << "str2: " << str2 << endl;
    cout << "str3: " << str3 << endl;
    return 0;
}

可以看到,str2仅保留小数点后的前九位,而str3将小数点后的数字截取到第七位。

二、c++ to_string补位

to_string不会在数字前面添加前导零。如果您需要添加前导零以使数字看起来更整齐,则可以使用其他一些方法:


#include 
#include 
#include 
using namespace std;
int main() {
    //方法一:使用iomanip setfill和setw操作
    int num1 = 123;
    stringstream ss;
    ss << setw(8) << setfill('0') << num1;
    cout << ss.str() << endl;

    //方法二:使用sprintf函数
    int num2 = 456;
    char buf[10];
    sprintf(buf, "%08d", num2);
    cout << buf << endl;
    return 0;
}

三、string函数作用

使用to_string返回的结果是一个字符串,它也可以使用C ++ STL中的标准string函数进行处理。


#include 
#include 
using namespace std;
int main() {
    double num = 123.456789;
    string str1 = to_string(num);
    string str2 = "Hello World";
    cout << str1.substr(0, 5) << endl; //截取前五个字符
    cout << str2.size() << endl; //获取字符串长度
    return 0;
}

四、c++ to_string函数

to_string是C ++ 11中的标准库函数,它将数字转换为字符串,并可以接受任何数字类型。


#include 
#include 
using namespace std;
int main() {
    int num1 = 123;
    long num2 = 456789;
    float num3 = 3.14f;
    double num4 = 2.7182818;
    string str1 = to_string(num1);
    string str2 = to_string(num2);
    string str3 = to_string(num3);
    string str4 = to_string(num4);
    cout << str1 << endl;
    cout << str2 << endl;
    cout << str3 << endl;
    cout << str4 << endl;
    return 0;
}

五、c++ to_string 限定长度

使用to_string函数转换数字时,如果超出字符串的最大长度,将自动截断。为了确保输出的字符串不会太长,可以使用std :: to_chars,该函数可以指定输出的最大长度。


#include 
#include 
using namespace std;
int main() {
    int num = 123456;
    char buffer[10];
    auto [p, ec] = to_chars(buffer, buffer + 10, num);
    cout.write(buffer, p - buffer) << endl; //最大输出10个字符
    return 0;
}

六、c++ to_string 头文件

to_string函数定义在头文件,因此在使用to_string函数之前需要包含此头文件。


#include 
#include 
using namespace std;
int main() {
    double num = 3.14159;
    string str = to_string(num);
    cout << str << endl;
    return 0;
}

七、c++ to_string函数作用

to_string函数的主要作用是将数字转换为字符串。

八、c++ to_string打印二进制数

to_string还允许指定输出数字的格式,例如二进制。下面的示例显示如何使用to_string将数字转换为二进制字符串。


#include 
#include 
#include 
using namespace std;
int main() {
    int num = 123;
    string str = bitset(num).to_string();
    cout << str << endl; //输出二进制数
    return 0;
}

九、c++ to_string为空

使用to_string函数转换空指针时,将引发std ::bad_alloc异常。


#include 
#include 
using namespace std;
int main() {
    int *ptr = nullptr;
    try {
        string str = to_string(*ptr);
    }
    catch (const std::exception &e) {
        cout << "Exception: " << e.what() << endl;
    }
    return 0;
}

c++to_string

相关文章

linux查看当前编译器,linux查看编译器版本

linux查看当前编译器,linux查看编译器版本

2023-11-25
linux0.11编译ubuntu,ubuntu 编译器

linux0.11编译ubuntu,ubuntu 编译器

2023-11-25
linux设置用户有效时间,linux设置用户密码过期时间

linux设置用户有效时间,linux设置用户密码过期时间

2023-11-25
Webpack Jsonp反编译实践

Webpack Jsonp反编译实践

2023-11-25

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取