Pytanie o fstream (c++)


(Lukasz Pyrzyk) #1

Witam,

Pisałem dziś maturę z informatyki.

DO wczytania pliku używam biblioteki fstream, również tej samej funkcji

#include 

#include 

#include 


using namespace std;

int main() {

	fstream plik1;


	string liczba;

	int dlugosc;

	int suma = 0;


	plik1.open("dane.txt");

	for(int i=0; i<5000; i++) {

		getline(plik1, liczba);

		dlugosc=liczba.length();

		if(liczba[0]==liczba[dlugosc-1])

			suma++;

	}

	cout<
}

Taki program napisałem do jednego z podpunktów, ma on sprawdzać czy pierwszy znak wczytanej liczby jest taki sam jak ostatni.

Problem jest taki iż... na szkolnym komputerze każde uruchomienie programu podawało mi inny wynik. Po 10 minutach zauważyłem, że program zmienia mi wartość danych w pliku tekstowym dane.txt. Za pierwszym uruchomieniem było to 404, potem 50, nastepnei liczby losowe...

Profesor na maturze powiedział mi że to nie jest wina systemu / kompilatora gdyż MAM BŁĄD W KODZIE

Co Wy na to?


(Manonim93) #2

Na pierwszy rzut oka nie powinno tu nic zmieniać danych, gdybyś zamiast fstream użył klasy ifstream miałbyś pewność.


(Lukasz Pyrzyk) #3

Tylko teraz pytanie, czy fstream może modyfikować mi w dowolnym momencie plik wejściowy??