第五节 · 电报机 · 字符串流

有时候,我们需要在字符串和其他数据类型之间进行转换,或者需要对字符串进行格式化处理。字符串流就是为此设计的工具——它让我们能够像操作文件一样操作字符串。


字符串流类

说明

istringstream

从字符串读取数据

ostringstream

向字符串写入数据

stringstream

双向字符串流

使用前需要包含 <sstream> 头文件。


从字符串读取数据

#include <sstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
    string data = "42 3.14 Hello";
    istringstream iss(data);
    
    int n;
    double d;
    string s;
    
    iss >> n >> d >> s;
    
    cout << "整数: " << n << endl;     // 42
    cout << "浮点数: " << d << endl;   // 3.14
    cout << "字符串: " << s << endl;   // Hello
    
    return 0;
}

向字符串写入数据


字符串分割


类型转换


格式化输出


实际应用:解析 CSV


构建复杂字符串


习题

  • 使用字符串流实现一个 join 函数,将字符串数组用指定分隔符连接。

  • 解析形如 "key1=value1;key2=value2" 的字符串,存入 map。

  • 实现一个简单的模板字符串替换功能。

Last updated