【发布时间】:2014-08-13 18:28:19
【问题描述】:
我知道其他用户已经问过这个问题。是的,它是重复的,这里是 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;
}
我检查了更多解决方案,但无法解决此问题,这就是我将其发布在这里的原因。
【问题讨论】:
-
尝试使用调试器并在
getline之后放置一个断点。查看您的line变量。验证它是否有一个换行符和一个终止空字符。 -
什么不起作用?文件中没有换行符?你用什么编辑器来查看它们?你试过
\r\n吗?你为什么用这么老的编译器? -
@RetiredNinja 。是的,我尝试使用 \r\n 。但没有用。如果我改变编译器,我能解决这个问题吗?
-
首先我认为您需要准确解释问题所在。您编写的文件中没有换行符吗?回读文件时是否显示问题?
getline应该读取直到分隔符的所有字符,在本例中为\n,并丢弃分隔符。如果是这种情况,那么您需要在打印时将\n添加到您阅读的行的末尾。 -
这段代码比我老了