Zamiana słów w otwartym pliku

0

Odczytałam plik znalazłam słowo, próbuje użyć replace.
Jak poprawnie użyć replace aby zapisać stringa do pliku? znaczy zamienić ze znalezionym?



#include <iostream>
#include <fstream>
#include <string>
 #include <algorithm>
using namespace std;
 
int main()
{
   string zawartosc_pliku;
 string::size_type pozycja;
   ifstream NowyPlik; 
   
   NowyPlik.open("plik1.txt");
   while(NowyPlik.good())
        {
        getline(NowyPlik, zawartosc_pliku);
        //cout<<zawartosc_pliku<<endl;
        pozycja=zawartosc_pliku.find("Zuzia");  
			if(pozycja!=string::npos)
			{cout<<"Słowo Zuzia wystepuje";
			replace(zawartosc_pliku, "Susanna" );
			}
        }
   NowyPlik.close();
 
   cin.get();
   return 0;
}

0

Chyba ci chodziło o string::replace.
A gdzie te wyniki po zamianie zapisujesz?

0

na razie nigdzie:)

Poprawiłam linijkę z replace.



#include <iostream>
#include <fstream>
#include <string>
 //#include <algorithm>
using namespace std;
 
int main()
{
   string zawartosc_pliku,a="zuzinka";
 string::size_type pozycja;
   ifstream NowyPlik; 
   
   NowyPlik.open("plik1.txt");
   while(NowyPlik.good())
        {
        getline(NowyPlik, zawartosc_pliku);
        //cout<<zawartosc_pliku<<endl;
        pozycja=zawartosc_pliku.find("Zuzia");  
			if(pozycja!=string::npos)
			{cout<<"Słowo Zuzia wystepuje";
			NowyPlik<<zawartosc_pliku.replace(pozycja,5, a );
		//pozycja.insert(6,a);
			}
        }
   NowyPlik.close();
 
   cin.get();
   return 0;
}

Próbuje zapisać do pliku przez strumień...

Nadal się nie kompiluje...

0

Przecież ci kompilator mówi wyraźnie, do typu którym jest NowyPlik nie przeciążono operatora <<.
Zgadnij czym jest litera i w słowie ifstream.
Poza tym już ci pisałem, nie tędy droga, musisz zapisać do innego pliku, po czym stary skasować zaś nowy przemianować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1