对C++的getline函数的补充说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qiuchangyong/article/details/88970777

C++从流中读取一行的实现是getline函数,它的定义在<string>文件里,有四种重载形式。实际使用中我发现在Windows和Linux下的行为有区别。这里先说一下,Windows下的文本文件的换行是'\r' '\n'两个字符,而Linux下的换行是'\n',Mac下的换行是'\r'。

Windows下使用getline读取一行时,可以去除掉尾部的'\r'和'\n'。然而在Linux下使用getline读取一行时,只能去除掉尾部的'\n',如果有'\r',是去不掉的,这一点处理时尤其要注意。本人没有测试过Mac下的getline函数的行为,这里略过。

从文件中读取一行的C语言的实现是fgets函数,需要注意的是,读到的一行字符串里的'\r' '\n'是没有去掉的。这与C++的getline函数的行为又不相同了。

猜你喜欢

转载自blog.csdn.net/qiuchangyong/article/details/88970777