[C++]Konsola i Logowanie | Jak?


(Konrad12315) #1

Witam.

Chciałbym zrobić logowanie gdzie userzy są czytani z pliku.

Tzn.: Mam plik users.txt gdzie są wypisani userzy.

I chce żeby gdy wpiszemy swój login, program sprawdzał czy istnieje taka nazwa.

Jeżeli nie to błąd a jeżeli tak to dalsza część programu.

Chcę to umieścić w osobnej funkcji UsersList()...

o to kod nie wiem po co ale daje :slight_smile:

// Zabawy z C++


//pliki include

#include 

#include 

#include 


using namespace std;

void UsersList() //Lista userow pobierana z pliku users.txt idk jak to zrobic...

{


void Logowanie() // wiadomo :)

{

	string strLogin;


	cout << "Login: ";

	cin >> strLogin;

	cout << endl;


	if (strLogin == UsersList) //prog. sprawdza czy jest taka nazwa w pliku.

	{

		cout << "Zostales zalogowany pomyslnie!" << endl; //powodzenie logowania i przejscie dalej :)

	}

	else

	{

		cout << "Konto o nazwie " << strLogin << " nie istnieje!" << endl; //niestety nie istnieje takie konto :P

	}

}


int main() //glowna funkcja rozruchowa ;)

{

	Logowanie();

	getch(); //czekanie na dowolny przycisk i zamkniecie programu.


	return 0; //powiadomienie o sukcesie operacji.

}

Z góry dziękuje za pomoc :slight_smile:

EDIT:

Jak zrobić żeby zamiast hasła były gwiazdki? albo żeby nie było widać co się piszę, tak jak np w linuxie? :slight_smile:


(system) #2

Do funkcji UserList przekaz strLogin, w funkcji otwierasz plik, wczytujesz wiersz po wierszu i porównujesz wczytany wiersz z strLogin jeżeli taki sam to zwracasz prawdę jeżeli pętla po wierszom się zakończyła to zwracasz falsz.

bool UsersList(string login)

  {

  }

if (UsersList(strLogin)) //prog. sprawdza czy jest taka nazwa w pliku.

(system) #3

A ja mam pytanie. Jak zrobić, aby z pliku było wczytywane wiersz po wierszu (jestem początkującym, więc nie naskakujcie na mnie xD)? Czy trzeba to może pętlą for? Bardzo proszę o pokazanie tego na kodzie. DZ :slight_smile:


(Konrad12315) #4

Wczytujesz wiersz po wierszu... Możesz pokazać na kodzie jak to zrobić :slight_smile:

Byłbym bardzo wdzięczny.


(Fiołek) #5

Ludzie, nauczcie się szukać... Człowiek się trudzi by wam odpowiedzieć, a wam jeszcze mało. Może zaczniemy pisać programy za was?

Google -> getline fstream


(Sawyer47) #6

Można posłużyć się funkcją getline, prawie jak cat:

std::fstream file("filename");

std::string line;

while( std::getline(file, line) )

	std::cout << line << '\n';

Następnym razem poszukajcie w dokumentacji, np. tu: http://www.dinkumware.com/manuals/


(Konrad12315) #7

Ok dzięki wam. Pokombinowałem tym getline i wyszło :slight_smile:


(system) #8

I ja dzięki :slight_smile: