再谈string类


暑期受委托做了一个文本条目解析的工具,已经过了很长时间,有必要把一点经验写一下,可惜源代码带不出来。
1.对同一文本反复读取的问题。在做指定字段排除时,需要反复读取字段表,而这个表存于一个text文本中。那么就需要在每次用while(getline(fin, finBuff))之后对fin进行标志位清楚,即:fin.clear();,否则文件只会读取一次,后面的循环中将认为文件已经读取完而跳过,另外将seek移到文件头部也是需要的。
2.关于字段的匹配查找,string类中有一波以find为中心的查找函数,包括find(),find_first_of(),find_not_first_of()等等,值得注意的是,这几个函数的返回值是一个整形变量,即int变量,而不是指针。我在调试这个问题的时候花了很长时间才突然意识到这个问题。
3.关于string和char*的转换问题。string是可以直接转换为char*类型的,不用自己再写了。直接调用c_str()方法即可。这个函数返回的就是char*。
4.用作buffer的char*,使用前要记得清零。一个很经典的现象是,输出是出现了一排乱码“烫”,如果输出正常的字符之后,跟随着一排“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫 ”,不用说了,赶紧把输出的buffer用memset(pointer, '\0', sizeof(pointer));处理一下。一招见效。
其他的,都忘却了,记起来再说吧。
---------------------cut here----------------------
end 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值