新行不能处理c++中的文件

New line is not working with files in C++?

本文关键字:文件 c++ 不能 处理 新行      更新时间:2023-10-16

我知道这个问题已经被其他用户问过了。是的,它是复制的,这是link1和link2。我尝试了链接中给出的每个解决方案,但仍然不起作用。我使用TurboC++ 4.5编译器从borland。这里是我的代码

#include<iostream.h>
#include<conio.h>
#include<fstream.h>
int main()
{
  ofstream fout;
  fout.open("COUNTRY");
  fout<<"UNITED STATES OF AMERICA n";
  fout<<"UNITED KINGDOM n";
  fout<<"SOUTH KOREA n";
  fout.close();
  fout.open("CAPITAL");
  fout<<"WASHINGTON n";
  fout<<"LONDON n";
  fout<<"SEOUL n";
  fout.close();
  const int N=80;
  char line[N];
  ifstream fin;
  fin.open("COUNTRY");
  cout<<"nCONTENTS OF COUNTRY FILEn";
  while(fin)
  {
    fin.getline(line,N);
    cout<<line;
  }
  fin.close();
  fin.open("CAPITAL");
  cout<<"nCONTENTS OF CAPITAL FILEn";
  while(fin)
  {
    fin.getline(line,N);
    cout<<line;
  }
  fin.close();
  return 0;
}



我检查了更多的解决方案,但无法解决这个问题,这就是为什么我在这里发布它。

在输出数据时需要添加一个换行符。用getline读入它会丢弃每行末尾的"n"。

如果找到分隔符,则将其提取并丢弃,即为不存储,下一个输入操作将在它之后开始。

这是前面引用的那一页。

所以问题是,您正在存储以空结束的字符串,不以"n"结束。

你也可以用'endl'代替'n'

查看此链接:c++: "std::endl"与" n"