C++ daten in txt speichern

zeRrY

Grünschnabel
Guten Abend,
ich hab folgendes problem, das bestimmt sehr simpel zulösen ist. Doch ich bin noch nicht so erfahren in c++. Ich wollte ein Programm schreiben, welches nach einem Namen und einem Passwort fragt. Der Name und das Passwort sollen sehr einfach verschlüsselt werden (das verschlüsselt kann ich noch) und in einer txt gespeichert werden. Sollten sich aber mehrere Leute anmelden, sollen diese ebenfalls in der txt gespeichert werden. Wenn sich dann ein Benutzer Anmeldet soll überfrüft werden ob dieser in der txt vorhanden ist.

ich hoffe ich versteht was ich versuche möchte. Ich bedanke mich schon einmal für eure hilfe...

MFG zeRrY
 
Ich hab nicht viel Ahnung von C++, aber grundlegend würde ich es in etwa so machen:
C++:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

struct Benutzer {
	std::string Name;
	std::string Passwort;
};

std::ostream& operator <<(std::ostream& str, Benutzer& b) {
	str << b.Name << ";" << b.Passwort;

	return str;
}

std::istream& operator >>(std::istream& str, Benutzer& b) {
	std::string name;
	std::string passwort;

	std::getline(str, name, ';');
	std::getline(str, passwort);
	
	b.Name = name;
	b.Passwort = passwort;

	return str;
}

int main() {
	/* Account in Datei speichern
	std::ofstream datei("datei.txt");

	Benutzer b;

	b.Name = "meinName";
	b.Passwort = "meinPasswort";

	datei << b << std::endl;

	datei.flush();
	datei.close();
	*/

	// Accounts aus der Datei einlesen
	std::ifstream datei("datei.txt");

	std::vector<Benutzer> accounts;

	while (!datei.eof()) {
		Benutzer tmp;

		datei >> tmp;

		accounts.push_back(tmp);
	}

	return 0;
}

Jetzt musst du nur noch alle Benutzer im Vector durchgehen und schauen, ob bei einem die Daten übereinstimmen:

C++:
std::string eingabeName = "meinName";
std::string eingabePW = "passwort";

for (std::vector<Benutzer>::iterator it(accounts.begin()); it != accounts.end(); it++) {
	if ((*it).Name.compare(eingabeName) == 0 && (*it).Passwort.compare(eingabePW) == 0) {
		std::cout << "Daten korrekt." << std::endl;
	}
}
 
Zuletzt bearbeitet:
Zurück