Pomoc w analizie kodu #tablice#zapisywanie i odczytywanie z pliku txt
Ostatnio zmodyfikowano 2016-04-10 19:44
Damian155 Temat założony przez niniejszego użytkownika |
Pomoc w analizie kodu #tablice#zapisywanie i odczytywanie z pliku txt » 2016-04-10 18:58:10 Witam!!! Robię prosty program polegający na rejestracji haseł w pliku a następnie możliwości się z niego zalogowania Tu wstawiam mój kod: #include <iostream> #include<fstream> #include <ctime> #include <windows.h> int main() { int wybor; int licznik = 3; std::fstream passy; std::string loginy[ 10 ]; std::string hasla[ 10 ]; std::string login, haslo; std::string nowy_login, nowe_haslo; std::cout << "===================================================== ===============" << std::endl; std::cout << "Witaj w przechowywalni hasel!!!"; std::cout << " WERSJA:ALPHA 01" << std::endl; std::cout << "===================================================== ===============" << std::endl; std::cout << "Menu glowne" << std::endl; std::cout << "1.Aby utworzyc nowe konto" << std::endl; std::cout << "2.Aby zaalogowac sie na istniejace konto" << std::endl; std::cout << "=====================================================" << std::endl; std::cout << "Twoj wybor:"; std::cin >> wybor; switch( wybor ) { case 1: { system( "cls" ); std::cout << "Rejestracja" << std::endl; std::cout << "===========" << std::endl; std::cout << "Wpisz login:"; std::cin >> nowy_login; std::cout << "Wpisz haslo:"; std::cin >> nowe_haslo; passy.open( "passy.txt", std::ios::out | std::ios::app ); passy << nowy_login << std::endl; passy << nowe_haslo << std::endl; passy.close(); passy.clear(); system( "cls" ); std::cout << "Inicjalizacja"; do { std::cout << "."; licznik--; Sleep( 1000 ); } while( licznik != 0 ); if( passy.good() == true ) { system( "cls" ); std::cout << "Udalo sie zarejestrowac!!!" << std::endl; std::cout << "Logowanie mozliwe po ponownym uruchomieniu programu" << std::endl; system( "pause" ); } else { std::cout << "Cos poszlo nie tak!!!Spobuj ponownie za jakis czas" << std::endl; system( "pause" ); } } break; case 2: { system( "cls" ); std::cout << "Logowanie" << std::endl; std::cout << "=========" << std::endl; std::cout << "Wpisz login:"; std::cin >> login; std::cout << "Wpisz haslo:"; std::cin >> haslo; licznik = 3; system( "cls" ); std::cout << "Inicjalizacja"; do { std::cout << "."; licznik--; Sleep( 1000 ); } while( licznik != 0 ); passy.open( "passy.txt", std::ios::in ); if( passy.good() == false ) { std::cout << "Cos poszlo nie tak, sprobuj pozniej lub skontaktuj sie z dystrybutorem"; system( "pasue" ); } std::string linia; int nr_linii = 1; while( getline( passy, linia ) ) { switch( nr_linii ) { case 1: loginy[ 0 ] = linia; std::cout << "login" << loginy[ 0 ] << std::endl; break; case 2: hasla[ 0 ] = linia; std::cout << "haslo" << hasla[ 0 ] << std::endl; break; case 3: loginy[ 1 ] = linia; std::cout << "login" << loginy[ 1 ] << std::endl; break; case 4: hasla[ 1 ] = linia; std::cout << "haslo" << hasla[ 1 ] << std::endl; break; case 5: loginy[ 2 ] = linia; std::cout << "login" << loginy[ 2 ] << std::endl; break; case 6: hasla[ 2 ] = linia; std::cout << "haslo" << hasla[ 2 ] << std::endl; break; case 7: loginy[ 3 ] = linia; std::cout << "login" << loginy[ 3 ] << std::endl; break; case 8: hasla[ 3 ] = linia; std::cout << "haslo" << hasla[ 3 ] << std::endl; break; case 9: loginy[ 4 ] = linia; std::cout << "login" << loginy[ 4 ] << std::endl; break; case 10: hasla[ 4 ] = linia; std::cout << "haslo" << hasla[ 4 ] << std::endl; break; case 11: loginy[ 5 ] = linia; std::cout << "login" << loginy[ 5 ] << std::endl; break; case 12: hasla[ 5 ] = linia; std::cout << "haslo" << hasla[ 5 ] << std::endl; break; case 13: loginy[ 6 ] = linia; std::cout << "login" << loginy[ 6 ] << std::endl; break; case 14: hasla[ 6 ] = linia; std::cout << "haslo" << hasla[ 6 ] << std::endl; break; case 15: loginy[ 7 ] = linia; std::cout << "login" << loginy[ 7 ] << std::endl; break; case 16: hasla[ 7 ] = linia; std::cout << "haslo" << hasla[ 7 ] << std::endl; break; case 17: loginy[ 8 ] = linia; std::cout << "login" << loginy[ 8 ] << std::endl; break; case 18: hasla[ 8 ] = linia; std::cout << "haslo" << hasla[ 8 ] << std::endl; break; case 19: loginy[ 9 ] = linia; std::cout << "login" << loginy[ 9 ] << std::endl; break; case 20: hasla[ 9 ] = linia; std::cout << "haslo" << hasla[ 9 ] << std::endl; break; } nr_linii++; } if( login == loginy[ 0 - 9 ] && haslo == hasla[ 0 - 9 ] ) { std::cout << "Brawo"; } } break; default: { std::cout << "Nic nie wybrano"; } } } Dosyć to długie ale chodzi mi o to: Program kompiluje się bez żadnych problemów ale po wczytaniu wywala do pulpitu tak jakbym źle użył tablicy, to znaczy w tym przypadku dla 10 loginów wpisał loginy[10]. Sprawdzałem ale tak nie jest, pomoże ktoś bo nie wiem co może być źle |
|
mateczek |
» 2016-04-10 19:15:24 if( login == loginy[ 0 - 9 ] && haslo == hasla[ 0 - 9 ] ) { std::cout << "Brawo"; }
login == loginy[ 0 - 9 ]
ta pętla while z tymi casami to też jakieś dziwne !!! masz tablice 10 elementową to przejedź ją forem for( int i = 0; i < 10; i++ ) { if( getline( passy, linia ) ) break; loginy[ i ] = linia; if( getline( passy, linia ) ) break; hasla[ i ] = linia } |
|
Damian155 Temat założony przez niniejszego użytkownika |
» 2016-04-10 19:20:40 Miało to sygnalizować programowi aby z czytywał z loginów od 0 do 9 a skoro kompilacja przeszła bez problemu to myślałem że jest to dobrze :P Wiesz może jak to można inaczej zapisać ale żeby to działało ? |
|
mateczek |
» 2016-04-10 19:31:49 kompilacja przeszła bez problemu a próba odczytania tablicy o indeksie (-9) już nie koniecznie :P bool loged = false;
for( int i = 0; i < 10; i++ ) { string log, pass; if( !getline( passy, log ) ) break; if( !getline( passy, pass ) ) break; if( log == login && pass == password ) { loged = true; break; } if( log == login && pass != password ) { cout << "zle haslo!!!"; break; } }
|
|
Damian155 Temat założony przez niniejszego użytkownika |
» 2016-04-10 19:44:59 Ok popróbuje ale już nie dzisiaj :) Zmęczony jestem. A i tego wyświetlania docelowo też nie będzie, to tak na testy także zapis i tak sie nieco skróci |
|
« 1 » |