我正在尝试使用C ++,并在阅读文本文件时收到以下错误。知道为什么吗?
输入:
This is a test.
A test, with tabs and too many spaces.
If this is a good one,
then all will be well.
输出:
then all will be well. too many spaces.
代码:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string line;
ifstream infile ("A5.txt");
if (infile.is_open()) {
while (!infile.eof()) {
getline(infile,line);
cout << line << endl;
}
infile.close();
}
return 0;
}
答案 0 :(得分:5)
您使用的是使用UNIX行结尾(\n
)的实现,并解释\r
以将光标返回到行的开头。该文件包含旧的Mac OS行结尾(\r
),这意味着getline()
读取到文件末尾并将所有\r
放入字符串中,导致您稍后打印它们到控制台。