getline的误用
ifstream stream("log.conf");
char buffer[1024];
while(stream.good())
{
stream.getline(buffer,sizeof(buffer));
//some process about buffer
这段代码害我不浅:当被读文件的一行大于1024字节时,stream不再good,导致循环退出,后面的行再也不会读到了!
正确的应该这样,以避免有行长度的限制:
string line;
while(getline(stream,line))
{
//some process about line
STL库居然有两个getline,一个是fstream的成员函数,另一个是全局函数(没有行长度限制),岂不气刹人也么哥!
相关文章
- fedora 9 小集 - 01 05, 2009
- 多线程调试 - 12 17, 2008
- fedora 9 试用 - 12 05, 2008
留言: