> replace whit other text;Любые ответы на это?Я скучаю по тому, чтобы добавить текст в неко" />

Заменить строку в текстовом файле

c++ stream ifstream

50561 просмотра

3 ответа

Я хочу заменить строку текста в файле, но я не знаю функции для этого.

У меня есть это:

ofstream outfile("text.txt");
ifstream infile("text.txt");

infile >> replace whit other text;

Любые ответы на это?

Я скучаю по тому, чтобы добавить текст в некоторую строку в файле ...

пример

infile.add(text, line); 

Есть ли в C ++ функции для этого?

Автор: Warkanlock Источник Размещён: 12.11.2019 09:37

Ответы (3)


8 плюса

Боюсь, вам, вероятно, придется переписать весь файл. Вот как вы можете это сделать:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    string strReplace = "HELLO";
    string strNew = "GOODBYE";
    ifstream filein("filein.txt"); //File to read from
    ofstream fileout("fileout.txt"); //Temporary file
    if(!filein || !fileout)
    {
        cout << "Error opening files!" << endl;
        return 1;
    }

    string strTemp;
    //bool found = false;
    while(filein >> strTemp)
    {
        if(strTemp == strReplace){
            strTemp = strNew;
            //found = true;
        }
        strTemp += "\n";
        fileout << strTemp;
        //if(found) break;
    }
    return 0;
}

Ввод-файл:

ONE
TWO
THREE
HELLO
SEVEN

Выходной файл:

ONE
TWO
THREE
GOODBYE
SEVEN

Просто раскомментируйте закомментированные строки, если вы хотите, чтобы он заменил первое вхождение. Кроме того, я забыл, в конце добавить код, который удаляет filein.txt и переименовывает fileout.txt в filein.txt.

Автор: Anton Размещён: 29.02.2012 07:36

3 плюса

Вы должны стремиться к правильной линии / полукокса / позиции в файле , а затем чрезмерной записи . Там нет функции для поиска и замены как таковой (что я знаю).

Автор: Kashyap Размещён: 29.02.2012 07:08

3 плюса

Единственный способ заменить текст в файле или добавить строки в середине файла, это переписать весь файл с точки первой модификации. Вы не можете "освободить место" в середине файла для новых строк.

Надежный способ сделать это , чтобы скопировать содержимое файла в новый файл, делая изменения , как вы идете, а затем использовать renameдля перезаписи старого файла с новым.

Автор: zwol Размещён: 29.02.2012 07:11
Вопросы из категории :
32x32