您的位置:首页 > 其它

stringstream的读写

2015-12-30 12:49 302 查看
主要演示stringstream的赋值操作, 读取操作.

/// @file exam_x_x.cpp
/// @brief
/**
3.设字符串string="1 2 3 4 5 6 7 8 9",
用串流I/O的方法编程逐个读取这个串的每个数,直到读完为止,并在屏幕上输出。
*/

#include <iostream>
#include <limits>
#include <sstream>

using namespace std;

void clear_cin();
void fnTestStringSteam1();
void fnTestStringSteam2();

int main(int argc, char** argv, char** envp)
{
    fnTestStringSteam1(); ///< ok
    fnTestStringSteam2(); ///< ok

    cout << "END, press any key to quit" << endl;
    clear_cin();
    getchar();

    return 0;
}

void fnTestStringSteam1()
{
    char cBuf[260] = {'\0'};
    char cTmp = '\0';
    stringstream strs("1 2 3 4 5 6 7 8 9"); ///< 这样可以正确赋值

    do 
    {
        strs >> cTmp;
        cout << cTmp << endl;
        cTmp = '\0';
    } while (strs.good());
}

void fnTestStringSteam2()
{
    char cBuf[260] = {'\0'};
    stringstream strs("1 2 3 4 5 6 7 8 9"); ///< 这样可以正确赋值

    strs.clear();
    strs << stringstream("A 1 2 3 4 5 6 7 8 9 B").str().c_str(); ///< 这样可以正确赋值 too

    do 
    {
        strs.getline(cBuf, sizeof(cBuf), ' '); ///< getline 通用一些吧
        cout << cBuf << endl;
        cBuf[0] = '\0';
    } while (strs.good());
}

void clear_cin()
{
    cin.clear();
    cin.sync();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: