我正在尝试运行C ++代码。我的输入文件有行数,我正在尝试删除每行中的空格然后显示。但是,当我运行代码时,输出就会出现在一行中,即文件的所有行都显示在一行中。
请解决我的问题,以便我逐行获得输出。
感谢。
我试过这段代码。这是我的代码:
int main()
{
int i = 0, len, j;
std::string str;
ifstream iFile("g.txt");
while (std::getline(iFile, str) != 0)
{
len = str.length();
for (i = 0; i < len; i++)
{
if (str[i] == ' ')
{
for (j = i; j < len; j++)
{
str[j] = str[j + 1];
}
len--;
}
}
cout << str;
}
}
答案 0 :(得分:2)
cout<<str;
将字符串写入输出缓冲区,就是这样。下次您调用它时,您写出的str
将在写完的最后str
之后开始。如果您希望每个str
都在自己的行上,那么您可以使用
cout << str << endl;
//or
cout <<str << "\n";
每行不保留其换行符的原因是getline()
读取直到遇到换行符然后将所有内容存储到字符串中的换行符。然后它抛出换行符而不是将其添加到字符串中。
答案 1 :(得分:1)
你写的是这样的:
cout<<str;
您需要在字符串后输出换行符,其操作如下:
cout<<str<<endl;