c++标准IO 中的string流

c++标准IO 中的string流

sstream头文件

  • sstream头文件定义了三个类型来支持内存和string之间的IO,在用户看来,string类就像是一个IO流一样。

istringstream

  • 处理行内的多个单词(用空格分开),可以使用istringstream。以下代码将输入的一行单词缓冲,最后一并处理到vector中。
// 输入格式为: word1 word2 word3
void istringstream_test () {
    vector<string> words;
    string line, word;
    getline(cin, line);
    istringstream is(line); // 将istringstream绑定到line对象
    while (is >> word) {
        words.push_back(word);
    }
    vector<string>::iterator it = words.begin();
    while (it != words.end()) {
        cout << (*it) << endl;
        it++;
    }
}

ostringstream

  • 逐步构造输出,最后一起打印。以下代码对输入的多个单词进行判断分流,最后输出。
// 输入格式为: word1 word2 word3
void ostringstream_test () {
    vector<string> words;
    string line, word;
    getline(cin, line);
    istringstream is(line); // 将istringstream绑定到line对象
    while (is >> word) {
        words.push_back(word);
    }
    ostringstream os, boomOs;
    for (const string& entry: words) {
        if (entry == "123") {
            boomOs << "123boom" << ", ";
        }
        else {
            os << entry << ", ";
        }
    }
    cout << "os: " << os.str() << endl;
    cout << "boomOs: " << boomOs.str() << endl;
}

stringstream

  • 既可以读string数据,也可以向string写数据。
posted @ 2022-08-15 14:17  LeisureLak  阅读(72)  评论(0)    收藏  举报