getline的与\r\n的疑问
getline有两个版本,第一个版本以'\n'判断一行结束。
在windows系统下,文本文件的回车换行是\r\n,对应0X0D 0X0A,所以当使用如下代码的时候,在strline应该包含一个\r(最后一个字符),但是实际测试的时候却发现这个\r是不存在的。为什么?
std::ifstream infile
//infile初始化略
std::string strline;
while(std::getline(infile, strline))
{
//strline的处理略
}
如上的代码,换成如下:
std::stringstream ss;
ss << "a\r\n" << "b";
std::string strline;
while(std::getline(ss, strline))
{
//strline的处理略
}
会发现第一次给strline赋的值,其长度是2,也就是说是带了\r的。这是好理解的。
但是为什么从文件流中读入的时候,\r被消化掉了?