0

我的桌面上有多个 .html 文件,所有这些文件都链接在一起,但根据我自己的目录。这意味着如果将这些文件放在不同的计算机上,链接将不起作用。我正在尝试用 C++ 编写一个程序,它将:1)找到它所在计算机的用户名。(我已经做到了!) 2)用新用户名替换 html 文件中各个链接中目录中的用户名。我进行了彻底的研究,发现了一个人替换某些字符串的方法。但是,当我尝试使用相同的技巧时,它清除了整个文件。这是我的程序,因为它是:

     #include <iostream>
     #include <Windows.h>
     #include <gl/GL.h>
     #include <gl/GLU.h>
     #include <windows.h>
     #include <WinBase.h>
     #include <string>
     #include <fstream>
     #include <algorithm>
     using namespace std;

     int main()
     {
         TCHAR name [ UNLEN + 1 ];
         DWORD size = UNLEN + 1;
         GetUserName( (TCHAR*)name, &size );

         string search_string = "Christian";
         string replace_string = "name";
         string inbuf;
         fstream input_file("kormain.txt", ios::in);
         ofstream output_file("kormain.txt");

         while (!input_file.eof())
         {
             getline(input_file, inbuf);

             int spot = inbuf.find(search_string);
             if(spot >= 0)
             {
                 string tmpstring = inbuf.substr(0,spot);
                 tmpstring += replace_string;
                 tmpstring += inbuf.substr(spot+search_string.length(), inbuf.length());
                 inbuf = tmpstring;
             }

             output_file << inbuf << endl;
         }
         system ("PAUSE");
         return 0;
     }
4

1 回答 1

0

您正在打开同一个文件进行读取和写入,然后不检查状态。这可能会导致问题(取决于您的操作系统)。

作为快速测试,将您的文件更改output_file为写入不同的文件名,看看您是否得到预期的结果。

于 2013-07-07T02:15:59.687 回答