getline - problem z odczytem

getline - problem z odczytem
0

Cześć.
Zmienną odczytuje ze strumienia cin i zapisuje do pliku:

Kopiuj
char tekst1[100]="test1 test1";
char tekst2[100]="test2 test2";
cin.getline(tekst, 100);
ofstream plik("plik.txt");
plik.write(tekst1, 100);
plik.write(';',1);
plik.write(tekst2, 100);
plik.write(';',1);
plik.close();

W pliku oprócz tego co chciałem zapisać są jakieś inne śmieci.
Gdy chce odczytać plik to coś nie działa ale program się nie crashuje:

Kopiuj
ifstream plik("plik.txt");
char tekst1[100];
char tekst2[100];
plik.getline(tekst1, 100, ';');
plik.getline(tekst2, 100, ';');
plik.close();

Gdy usunę z pliku te śmieci to program odczytuje plik poprawnie a jeśli nie usunę to odczytuje ale tylko pierwszy wyraz.
Jak to naprawić?

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
2

Obstawiam, że błąd jest tutaj:

Kopiuj
plik.write(';',1);

write() oczekuje wskaźnika na ciąg znaków, a Ty przekazujesz mu chara.


WY
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:134
0

W tym co kolega wyżej napisał zamień ';' na ";"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.