Problem z zapisem danych do pliku.
Ostatnio zmodyfikowano 2018-03-03 14:51
Irish Temat założony przez niniejszego użytkownika |
Problem z zapisem danych do pliku. » 2018-03-03 10:36:16 Mam problem z zapisem do danych w pliku, nie rozumiem za bardzo gdzie jest błąd. Chce żeby program zapisał dane po rejestracji a w przyszłości odczytał dane do logowania z pliku, żeby nie trzeba było się rejestrować za każdym razem po zamknięciu programu. #include <iostream> #include <conio.h> #include <string> #include <fstream> using namespace std;
void opcje() { cout << "[1] Rejstracja " << endl; cout << "[2] Logowanie" << endl; cout << "[0] wyjscie z programu " << endl; }
int main() { int wybor; string login, haslo, a, b; opcje(); do { cout << "Wybieram opcje: "; cin >> wybor; switch( wybor ) { case 1: cout << "Podaj l: "; cin >> a; cout << "Podaj h: "; cin >> b; fstream haslo; haslo.open( "haslo1.txt", ios::in ); if( haslo.good() == false ) { cout << "Plik nie istnieje."; } haslo << a; haslo << b; haslo.close(); haslo.clear(); break; case 2: poczatek: cout << "Podaj login: "; cin >> login; cout << "Podaj haslo: "; cin >> haslo; if( haslo == b && login == a ) { goto dalej; } else { cout << "Haslo lub login nie prawidlowe" << endl; goto poczatek; } break; } } while( wybor != 0 ); dalej: cout << "dalej"; getch(); return 0; }
|
|
YooSy |
» 2018-03-03 10:52:47 Mam problem z zapisem do danych w pliku, nie rozumiem za bardzo gdzie jest błąd. |
Jaki problem? Konkretniej. Używasz instrukcji w niewłaściwej kolejności. Wpierw zamykasz plik, a później czyścisz flagi strumienia? Uzywanie goto należy unikać, a w tak prostych programach absolutnie nie używać. Jeśli uruchomisz program i wykonasz od razu case 2: obiekty a i b będą puste. Przed ich uzyciem sprawdzaj czy nie są a.empty();. Proponuję prześledzić wszystkie możliwe gałęzie przebiegu programu i rozpisać na kartce jak i czy zmieniają się zmienne. W przypadku jednokierunkowego używania strumienia plikowego, łatwiej będzie ogarnąć kod używając ofsteeam i ifstream. |
|
pekfos |
» 2018-03-03 14:51:45 Otwierasz plik w trybie tylko do odczytu. |
|
« 1 » |