[c++] Problem z edytowaniem linijek pliku tekstowego


(Begi89) #1

chodzi o to, że pobieram dane z jednego pliku, modyfikuje i zapisuje do 2 pliku

dane pobrane wyświetlają mi się prawidłowo

problem w tym, że nie mogę je zapisać do 2 pliku

fstream plik2 ("plik2.txt");

if (plik2.is_open())

{

                 while (! plik2.eof() )

		{


			getline (plik2,line);

			for(int i=0;i
			{

				if(line[i]=='n'&&line[i+1]=='x')

				plik2<
                       }

                  }

plik2.close();

}

czemu nie działa plik2<

dodam jeszcze że 'text1' ma zastąpić tą jedną linijkę gdzie jest "nx"


(Sawyer47) #2

Odwołujesz się poza zakres line.


(Begi89) #3

nie rozumiem


(Sawyer47) #4

Jeśli chcesz sprawdzić czy w stringu nie występuje "nx" użyj może string::find


(Begi89) #5

for(int i=0;i

{

if(line_=='n'&&line[i+1]=='x')_

plik2<

cout << "test";

}

test wyskakuje dobrą ilość razy... takie szukanie działa

powtórzę że problem polega na tym, że

plik2<


(Agatonster) #6

607050 ,

Poradnik dla Ciebie

Proszę poprawić tytuł tematu na konkretny, mówiący o problemie. W celu dokonania zaleconej korekty proszę użyć przycisku Edytuj przy poście otwierającym ten temat.

Zignorowanie zalecenia będzie skutkowało usunięciem tematu do Kosza.


([alex]) #7

(Begi89) #8


([alex]) #9

Jeżeli masz każdą linijkę taką samą lub krótszą to możesz.

Ale pamiętaj że jak coś odczytałeś to "kursor" stoi na końcu wiersza, więc aby ten wiersz nadpisać musisz wrócić na początek wiersza i dopiero stamtąd zacząć nadpisywać, po wpisaniu należy wrócić na to miejsce gdzie się skończyło czytanie.

Jeżeli chcesz czytać/pisać na zmianę to potrzebujesz metod:

seek()

tell()

z fstream