我知道其他用户已经提出过这个问题。是的,它是重复的,这里是link1和link2。我尝试了链接中给出的每个解决方案,但仍然无法正常工作。我正在使用来自borland的TurboC ++ 4.5编译器。这是我的代码
#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 FILE\n";
while(fin)
{
fin.getline(line,N);
cout<<line;
}
fin.close();
fin.open("CAPITAL");
cout<<"\nCONTENTS OF CAPITAL FILE\n";
while(fin)
{
fin.getline(line,N);
cout<<line;
}
fin.close();
return 0;
}
我检查了更多解决方案,但无法解决此问题,这就是我在此处发布的原因。
答案 0 :(得分:3)
您需要在编写数据时添加换行符。用getline
读取它会丢弃&#34; \ n&#34;在每一行的末尾。
如果找到分隔符,则将其提取并丢弃,即它 没有存储,下一个输入操作将在它之后开始。
Here是前面引用的页面。
所以问题是你存储的是以#34; \ n&#34;结尾的以空字符结尾的字符串。
答案 1 :(得分:1)
你也可以使用&#39; endl&#39;而不是&#39; \ n&#39;
点击此链接:C++: "std::endl" vs "\n"