编译、链接、运行都没问题,但是就是达不到预期的结果!!!不知咋回事???
题目是这样的:给定一个要读取的文本文件,我们将计算文件的字节大小并将它存储在文件尾部。另外每次遇到一个换行符,我们都将当前的字节大小包括换行符存储在文件末尾。例如已知文本文件“copy.txt”的内容如下:
abcd
efg
hi
j
程序应该生成下面修改之后的文本文件
abcd
efg
hi
j
5 9 12 14 24
但是我编写了程序,程序的结果却是这样的:
abcd
efg
hi
j
12
不知咋回事!!!请各位高手帮忙看看。
程序源码如下:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream infile("copy.txt", ios_base::in | ios_base::app);
int cnt = 0;
char ch;
infile.seekg(0);
while(infile.get(ch))
{
cout.put(ch);
++cnt;
if(ch == '\n')
{
streamoff mark = infile.tellg();
infile << cnt << ' ';
infile.seekg(mark);
}
}
infile.clear();
infile << cnt << endl;
cout << "[" << cnt << "]" << endl;
return 0;
}