istringstream,ostringstream,stringstream,的简单使用。

这些是 C++ 中与字符串流相关的类:

istringstream

• 功能:用于从字符串中读取数据,就像从输入流(如 cin)中读取数据一样。它将一个字符串视为一个输入源,允许你使用流提取运算符(>>)来提取其中的数据。
• 示例:

#include <sstream>
#include <iostream>
#include <string>

int main() {
    std::string data = "123 456";
    std::istringstream iss(data);
    int num1, num2;
    iss >> num1 >> num2;
    std::cout << "num1: " << num1 << ", num2: " << num2 << std::endl;
    return 0;
}


在上述示例中,istringstream 对象 iss 从字符串 data 中读取两个整数,并分别存储到 num1 和 num2 中。

ostringstream

• 功能:用于将数据写入到一个字符串中,类似于向输出流(如 cout)写入数据。你可以使用流插入运算符(<<)向 ostringstream 对象中插入各种类型的数据,最后可以通过调用 str() 成员函数获取生成的字符串。
• 示例:

#include <sstream>
#include <iostream>
#include <string>

int main() {
    std::ostringstream oss;
    oss << "Hello, " << 123 << " World!";
    std::string result = oss.str();
    std::cout << result << std::endl;
    return 0;
}


这里,ostringstream 对象 oss 将字符串和整数组合成一个新的字符串,然后通过 str() 获取并输出。

stringstream

• 功能:它兼具 istringstream 和 ostringstream 的功能,既可以从字符串中读取数据,也可以向字符串中写入数据。
• 示例:

#include <sstream>
#include <iostream>
#include <string>

int main() {
    std::stringstream ss;
    ss << "123";
    int num;
    ss >> num;
    std::cout << "num: " << num << std::endl;
    ss.clear(); 
    ss << "Hello";
    std::string str;
    ss >> str;
    std::cout << "str: " << str << stdendl;
    return 0;
}


在这个例子中,先向 stringstream 对象 ss 写入一个整数字符串,然后读取出来;接着清除流状态,再写入一个字符串,然后读取出来。

这些字符串流类在需要对字符串进行复杂的格式化输入输出操作时非常有用,能够方便地将不同类型的数据转换为字符串,或者从字符串中提取出不同类型的数据,提高了代码的灵活性和可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值