У меня есть несколько файлов .html на моем рабочем столе, все из которых связаны друг с другом, но в соответствии с моим собственным каталогом. Это означает, что если эти файлы были размещены на другом компьютере, ссылки не будут работать. Я пытаюсь сделать программу на C++, которая будет: 1) Найдите имя пользователя компьютера, на котором он включен. (Я так далеко!) 2) Замените имя пользователя в каталоге в отдельных ссылках в файлах html с новым именем пользователя. Я тщательно исследовал, и я нашел способ замещения некоторых строк одним человеком. Однако, когда я попытался сделать тот же трюк, он очистил весь файл. Вот моя программа такая, какая она есть:Замена текста в .txt-файле (C++)
#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;
}
Правильное решение будет относительным URI. Таким образом, даже работает на веб-сайтах. – MSalters