温馨提示×

c++ stod和std::to_string咋样

c++
小樊
81
2024-11-25 15:17:51
栏目: 编程语言

std::stodstd::to_string 是 C++ 标准库中的两种函数,它们用于将不同类型的数据转换为字符串。

  1. std::stod:这个函数用于将一个字符串转换为浮点数(double)。它接受一个 const char* 类型的参数,并返回一个 double 类型的值。如果输入的字符串不能被解析为有效的浮点数,那么结果将是 0.0,并且 std::invalid_argument 异常将被抛出。

示例:

#include <iostream>
#include <string>
#include <stdexcept>

int main() {
    std::string str = "3.14";
    try {
        double d = std::stod(str);
        std::cout << "Converted string to double: "<< d << std::endl;
    } catch (const std::invalid_argument& e) {
        std::cerr << "Invalid argument: " << e.what() << std::endl;
    }
    return 0;
}
  1. std::to_string:这个函数用于将一个整数(包括有符号和无符号类型)或浮点数(包括 floatdoublelong double 类型)转换为字符串。它接受一个模板参数 T,表示要转换的数据类型,以及一个参数,表示要转换的值。函数返回一个 std::string 类型的值。

示例:

#include <iostream>
#include <string>

int main() {
    int i = 42;
    double d = 3.14;

    std::string int_str = std::to_string(i);
    std::string double_str = std::to_string(d);

    std::cout << "Integer as string: " << int_str << std::endl;
    std::cout << "Double as string: " << double_str << std::endl;

    return 0;
}

总结:

  • std::stod 用于将字符串转换为浮点数,如果输入的字符串无法解析为有效的浮点数,将抛出异常。
  • std::to_string 用于将整数或浮点数转换为字符串,支持多种数据类型。

0