C++中stringstream多类型数据拼接和提取用法

1、std::stringstream 可以用于不同类型的拼接

在下面示例中,使用std::stringstream将整数、双精度浮点数和字符串连接到一个字符串中,这充分展示了其通用性。 << 运算符可以用于将各种数据类型追加到流中,而不仅仅是字符串。这使得 std::stringstream 成为一个强大的工具,可用于在C++中进行不同类型的拼接和字符串构建。

#include 
#include 
#include 
int main() 
{
    int intValue = 42;
    double doubleValue = 3.14159;
    std::string stringValue = "Hello, world!";
    
    std::stringstream ss;
    ss << "Int: " << intValue << ", Double: " << doubleValue << ", String: " << stringValue;
    
    std::string result = ss.str();
    std::cout << result << std::endl; 
    // 输出 "Int: 42, Double: 3.14159, String: Hello, world!"
    
    return 0;
}

2、std::stringstream 还可以用于从字符串中提取不同类型的数据到不同的变量中。

以下是一个示例

#include 
#include 
#include 

int main() {
    std::string data = "42 3.14159 Hello";
    int intValue;
    double doubleValue;
    std::string stringValue;

    std::stringstream ss(data);	
    ss >> intValue >> doubleValue >> stringValue;

    std::cout << "Integer Value: " << intValue << std::endl;
    std::cout << "Double Value: " << doubleValue << std::endl;
    std::cout << "String Value: " << stringValue << std::endl;

    return 0;
}

>> 用于从流中提取数据并进行类型转换,默认分隔符为空格、制表符、换行符: \t\n。这允许你将不同类型的数据从字符串中解析并存储在不同的变量中。

如果想自定义分隔符,那就不能靠>>运算符实现提取了,需要借助std::getline()

你可能感兴趣的:(C++,c++,算法,开发语言)