之前有人吐槽用 C++ 写一些输入格式比较奇怪的屑题的时候很麻烦,所以这里介绍一下 stringstream 的简单用法。虽然 C++ 的字符串确实存在诸多缺陷,但应付这些问题还是绰绰有余的。
面对类似于这种格式的数据:
[abc,de,fgh,zzz]
可以采用下面的方式来实现读取与分割。注意 string.find 函数返回的是一个无符号整数,表示该字符的位置。
vectorreadLine() { string line, s; getline(cin, line); line.erase(line.find('['), 1); line.erase(line.find(']'), 1); stringstream ss(line); vector ret; while (getline(ss, s, ',')) { ret.push_back(s); } return ret; }
stringstream 的其他应用以后再写。



