您好我正在尝试在文件中显示前10行文字。但是它只显示整个文件而不是将其限制为10行。
int count = 0;
string input = "";
fstream file;
file.open("Test.txt", ios::in);
for (int i = 0; i <= 10; ++i) {
getline(file, input);
cout << input;
}
答案 0 :(得分:1)
您的代码应该有效,但导致这种情况的原因可能是:
案例1:不要告诉我你的输入文件没有换行符并且被包装了。这将是愚蠢的 - .-
案例2:尝试添加cout << input << endl;
,看看它是打印整个文件还是只是逐行打印文件
还打印11行,因此您可能希望将<=
更改为<
答案 1 :(得分:0)
除了bisthebis的建议(我将其更改为打印&#39; ----&#39;),请检查文件的行结尾。 Mac使用&#39; \ r&#39 ;, Unix / Linux使用&#39; \ n&#39;和Windows使用&#39; \ r \ n&#39;。如果您使用的是Windows,则可以使用notepad ++来显示隐藏的字符。
另外,根据c ++规范(http://www.cplusplus.com/reference/string/string/getline/),getline仅考虑&#39; \ n&#39;作为新行分隔符。