今天做数据结构的作业,郁闷啊 要写fstream流,这个是上学期学的,现在差不多忘了,呵呵……忘了就复习呗,其中遇到一个问题是eof()的循环,我是用while来做的,输出的结果老是多出一行,想很久都不知道怎么做,网上查了一下知道了答案。现在公布一下呵呵。
eof在读取完最后一个数据后,仍是False,当再次试图读一个数据时,由于发现没数据可读了 才知道到末尾了,此时才修改标志,eof变为TRUE,知道了原理就好办,在读入之后再加一个if的判断条件应该可以了……
代码如下:
ifstream fin("D://line.txt");
ofstream fout("D://T_line.txt",ios::trunc);
list<tag_Point> test_list;
tag_Point test;
while (!fin.eof())
{
fin>>test.x;
if(!fin.eof) //新的判断
break;
}
fin.close();
以上就可以实现不多一行的数据了……