c++ getline返回一些奇怪的结果

C++ getline gives back some strange results

本文关键字:结果 getline 返回 c++      更新时间:2023-10-16

我想运行这段代码:

string p = "Test.txt";
ifstream fid(p.c_str());
while(!fid.eof()) {
    getline(fid,p);
    cout << "|s|" << p << "|e|" << endl;
}

但是结果是这样的:

 |e|line1
 |e|line2
 ...

代替:

 |s|line1|e|
 |s|line1|e|
 ...
谁能给我解释一下我做错了什么?

你magu_

谢谢你的回答。

实际上我应该知道的,因为我在Win/Linux之间切换…

 p.erase(remove(p.begin(), p.end(), 'r'), p.end());

解决了问题。谢谢你的帮助。我仍然想知道我的程序在做什么。但我想这是不稳定的情况之一你不应该在^^

上构建程序

谢谢了magu_