我应该一次读取一个字符的文本文件,每当有一个新行时,line
应该增加一个。
所以这是代码的相关部分:
ifstream textFile.open("PATHWAY::HERE//RRER.txt");
int line = 1;
char letter;
while (textFile)
{
//Read in letter
textFile >> letter;
// If you reach the end of the line
if (letter == '\n')
{
line++;
cout << line;
}
}
if语句由于某种原因被完全忽略,并且不会打印出行。
答案 0 :(得分:2)
虽然答案(到现在为止)已经提到了关于&#34; \ n&#34;正确地说,提到的方法可能不起作用。原因是>>
是格式化的输入运算符,它将跳过空格。您必须使用std::ifstream::get
代码看起来像:
while (textfile.get(letter))
{
// If you reach the end of the line
if (letter == '\n')
{
line++;
cout << line;
}
}
答案 1 :(得分:1)
您的代码中存在一些错误:
您需要使用std::ifstream::get
来阅读文件
删除textFile>> letter;
,因为它会跳过whitespaces
所以你的代码将如下所示
ifstream textFile.open("PATHWAY::HERE//RRER.txt");
int line = 0; // not 1
char letter;
while(textFile.get(letter))
{
// If you reach the end of the line
if (letter == '\n')
{
line++;
cout << line;
}
}
答案 2 :(得分:0)
您可以使用\n
字符
所以你的代码应该是
ifstream textFile.open("PATHWAY::HERE//RRER.txt");
int line = 1;
char letter;
while (textFile)
{
// Read in letter
textFile>> letter;
// If you reach the end of the line
if (letter == '\n')
{
line++;
cout << line;
}
}
答案 3 :(得分:0)
使用istream::get
ifstream textFile.open("PATHWAY::HERE//RRER.txt");
int line = 0;
char letter;
while(textFile.get(letter))
{
// If you reach the end of the line
if (letter == '/n')
{
line++;
cout << line;
}
}