落。尘 发表于 2013-9-5 08:40:42

本人新手,请大家教我下。。

#include <fstream>
#include <iostream>

using namespace std;

int main()
{
        fstream fp("test.txt", ios::in | ios::out );
      if( !fp )
      {
            cerr << "打开文件失败!" << endl;
            return 0;
      }

      fp << "IloveFishc.com!";

      static char str;

      fp.seekg(ios::beg);// 使得文件指针指向文件头 ios::end 则是文件尾。
      cin>>str;
      fp << str;
      cout << str << endl;

      fp.close();

      return 0;
}

这段代码我想不覆盖直接在开头添加该怎么办,比如我输入abcd,我想文件输入abcdIloveFishc.com!,但是这个每次都被覆盖成abcdeFishc.com!.....大家帮帮我。。。

刹那芳华 发表于 2013-9-5 09:00:05

可以先读出来每行,在进行操作char temp;
char str;
char insert;
for(int i = 0;i<strlen(insert);i++)
   {temp = insert;}
for(int j = 0;j<strlen(str);j++)
{temp = str;}
sprintf()//直接打印到文件,格式我忘了...

落。尘 发表于 2013-9-5 09:07:26

刹那芳华 发表于 2013-9-5 09:00 static/image/common/back.gif
可以先读出来每行,在进行操作

我一开始也是这么想的,但是这个貌似有点烦,有木有简单一点的。。不过还是谢谢啦

刹那芳华 发表于 2013-9-5 16:48:05

落。尘 发表于 2013-9-5 09:07 static/image/common/back.gif
我一开始也是这么想的,但是这个貌似有点烦,有木有简单一点的。。不过还是谢谢啦

闹呢,简单的
fseek找到地址,你用回车符打入,在回档键
文本里的东西,本身是连续的,你想简单点,这个方法可以,我以前写log的时候用过

仰望天上的光 发表于 2013-9-5 21:41:18

没有什么好办法,你可以把文件全部读到一个字符数组里,然后再从头将所有要写入的内容重新写入。
这个就像你想在一个很长的数组的头部增加几个字符一样,很麻烦,肯定要移动数组的所有元素,所以还不如自己重新写次文件。

落。尘 发表于 2013-9-6 09:43:42

仰望天上的光 发表于 2013-9-5 21:41 static/image/common/back.gif
没有什么好办法,你可以把文件全部读到一个字符数组里,然后再从头将所有要写入的内容重新写入。
这个就像 ...

看来只能这样了。。谢谢啦

落。尘 发表于 2013-9-6 09:45:55

刹那芳华 发表于 2013-9-5 16:48 static/image/common/back.gif
闹呢,简单的
fseek找到地址,你用回车符打入,在回档键
文本里的东西,本身是连续的,你想简单点,这个 ...

谢啦,我去试试

trek600 发表于 2013-10-3 03:45:23

按照行来说写
页: [1]
查看完整版本: 本人新手,请大家教我下。。