字符串流函数

Posted

技术标签:

【中文标题】字符串流函数【英文标题】:stringStream functions 【发布时间】:2015-08-03 09:44:46 【问题描述】:
Morgan 201128374 4383745,12394 5455.30
drew  22223        91939,5324 55.9
stringstream strm;
sstream strm(s)
strm.str() return a copy of a string
strm.str(s) copies the string into strm return void.

当我将变量分配给 Stringstream 时,我正在寻找更多功能。我将如何忽略标点符号?我的书只列出了上面这两个函数。

struct PersonInfo
string name;
vector<string> numbers;

string line, word;
vector<PersonInfo> people;
while(getline(cin, line))

    PersonInfo Info;
    istringstream record(line);
    record >> info.name;
    while (record >> word)
       info.numbers.push_back(word);
    people.push_back(info);

【问题讨论】:

cplusplus.com/reference/sstream/stringstream 【参考方案1】:

如何忽略标点符号?我的书只列出了上面这两个函数。

使用 std::getline,它接受一个分隔符参数:

if(! std::getline(record, line, ' ') ) // reads to first space
    throw std::runtime_error "bad stream format" ;

您应该阅读一个分隔符,并将分隔符替换为“”或“;”。

【讨论】:

以上是关于字符串流函数的主要内容,如果未能解决你的问题,请参考以下文章

将字符串流提供给类成员函数

如何清除字符串流变量?

memorystream - 字符串流,字符串,其他?

C++ 字符串流

字符串流

字符串流数学运算