| kiraler Temat założony przez niniejszego użytkownika | Problem ze stringiem, i szukaniem frazy. » 2013-01-09 00:55:22 Witam, mam taki kodzik: cout << "Podaj login" << endl;cin >> loginPODANYprzezUSERA;
 
 system( "cls" );
 cout << "Podaj hasło" << endl;
 cin >> hasloPODANEprzezUSERA;
 
 hashLOGINUpodanegoPRZEZusera = md5( loginPODANYprzezUSERA );
 hashHASLApodanegoPRZEZusera = md5( hasloPODANEprzezUSERA );
 cout << "podany login: " << hashLOGINUpodanegoPRZEZusera << endl;
 
I gdy odpalam program przez debugger to, program działa, ale jak odpalam normalnie to dostaje app crash. Dodatkowo, w debugu w linijce hashLOGINU... = md5(loginPODANY...) wyskakuje takie coś: In std::string::operator=(std::string const&) () ()
 #3  0x0040146f in menu (baza=..., users=..., znak=..., znak02=..., znak03=..., zadanie=..., id=..., czyWYP=false) at C:\Documents and Settings\Kuba\Pulpit\Projekty C++\DB Biblioteka\main.cpp:29
 C:\Documents and Settings\Kuba\Pulpit\Projekty C++\DB Biblioteka\main.cpp:29:1242:beg:0x40146f
 At C:\Documents and Settings\Kuba\Pulpit\Projekty C++\DB Biblioteka\main.cpp:29
 
 mimo że program działa dalej. Korzystam z Code::Blocks. Czego to może być wina ? HashLOGINUpodanegoPRZEZusera, loginPODANYprzezUSERA, hashHASLApodanegoPRZEZusera, hasloPODANEprzezUSERA to stringi. Pozdrawiam. | 
|  | 
| xevuel | » 2013-01-09 06:51:28 Stwórz najprostszy przykład, który po skompilowaniu będzie działał tak jak to opisujesz, żebyśmy mogli przeanalizować jego działanie. W tej chwili nie wiemy nawet po której linijce aplikacja się wywala bez debuggera. md5() to Twoja funkcja, czy wzięta z jakiejś biblioteki?
 Btw, zdajesz sobie sprawę, że hashowanie bez soli nie ma dużego sensu? :)
 | 
|  | 
| kiraler Temat założony przez niniejszego użytkownika | » 2013-01-09 13:19:54 Przemyślałem to, i zdecydowałem narazie nie używać żadnego hashu. Mam jeszcze problem, otóż dlaczego jak wyszukuję pozycję frazy to zawsze dostaje wynik "-1", mimo że w "plik" jest ten login i hasło wpisywane przez użytkownika ? Kod jest taki: cout << "Podaj login" << endl;cin >> loginPODANYprzezUSERA;
 
 system( "cls" );
 cout << "Podaj hasło" << endl;
 cin >> hasloPODANEprzezUSERA;
 
 pozLoginu = plik.find( loginPODANYprzezUSERA );
 pozHasla = plik.find( loginPODANYprzezUSERA );
 
Jeszcze jedno pytanie: czy da się odczytać/zapisać dane z/do pliku binarnego poprzez std::string ? Nie chodzi mi o coś w stylu tego: users.read( jakisString.c_str(), bufor ); tylko np: users.read( jakisString, bufor ); PS. Nie brałem soli, ponieważ to jest aplikacja dla poćwiczenia. | 
|  | 
| xevuel | » 2013-01-09 15:23:58 Powtórzę jeszcze raz: stwórz w pełni kompilowalny kod. Z tego, który podajesz nie da się nic wywnioskować, chociażby dlatego, że nie wiemy ani jakiego typu jest plik, ani co on zawiera... | 
|  | 
| DejaVu | » 2013-01-09 15:44:31 @up: można strzelać, że 'plik' jest zmienną std::string :) | 
|  | 
| kiraler Temat założony przez niniejszego użytkownika | » 2013-01-09 21:10:26 Oto cały kod: int pozZNAKlog, pozZNAKpass, bufor;string plik, loginPODANYprzezUSERA, hasloPODANEprzezUSERA,
 
 users.open( "users.dat", ios::in | ios::out | ios::binary );
 users.seekg( 0, ios::end );
 bufor = users.tellg();
 users.seekg( 0, ios::beg );
 users.read( plik.c_str(), bufor );
 
 system( "cls" );
 cout << "Podaj login" << endl;
 cin >> loginPODANYprzezUSERA;
 
 system( "cls" );
 cout << "Podaj hasło" << endl;
 cin >> hasloPODANEprzezUSERA;
 
 pozZNAKlog = plik.find( loginPODANYprzezUSERA );
 pozZNAKpass = plik.find( hasloPODANEprzezUSERA );
 
w plik.find(login...) i (haslo...) zawsze zwraca wartość "-1", mimo że login i hasło znajduje się w pliku.  users.dat: usr; 0log: 6893a41acc29bc0cbca85f71c0f6640bpss: 8b8a91f14e8a274d597378f5037130e8
 
 | 
|  | 
| xevuel | » 2013-01-09 21:13:37 users.read( plik.c_str(), bufor ); To nie będzie działać. | 
|  | 
| kiraler Temat założony przez niniejszego użytkownika | » 2013-01-09 21:16:46 Dlaczego nie będzie działać ? | 
|  | 
| « 1 »  2 |