首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

sscanf与stringstream的困惑解决方案

2012-03-29 
sscanf与stringstream的困惑RTsscanf很好很强大,但没有提供输出给string类型的接口,从某种格式中提取些东

sscanf与stringstream的困惑
RT
sscanf很好很强大,但没有提供输出给string类型的接口,从某种格式中提取些东西的情况是很常见的(比如时间2012-02-11里提取Y m d,或者一些网络对端发来的带标记的数据,sscanf是很方便)。
但也有想要保持一贯风格的时候,比如想只用string而不用char*,但是遇上这种情况就很麻烦,得先开几个char数组来存下,然后再给string构造。
stringstream用来处理空白和换行符是可以,但对特定格式就无能为力了。
也许你会说,一开始就用char不就好了?。但string毕竟是个不错的选择,处理起来方便许多,写到后面才发现有些地方是用sscanf容易解决,其他方法就毕竟繁琐的,再一路改回去就不现实了。

很烦恼,委员会的大神们就没考虑过这个问题么??就没有优雅点的方式解决问题么???

[解决办法]
不是有c_str接口么。。。

sscanf是挺厉害, 但对于灵活度比较大的格式还是自己实现比较厉害, 一个string,一个string::find,一个string::substr足以解决任何格式问题。
[解决办法]
sscanf大部分情况够用了,而且字符串处理一般数据是可以预测的(不同于控制台IO),只要自己不犯低级错误,安全性问题通常可以避免

热点排行