boost::asio, User Interface code design.
-
Hallo,
ich arbeite momentan an einer sehr einfachen Benutzerschnittstelle für einen Server und Client. Um meine Anforderungen kurz zu erläutern ein abstraktes Beispiel.Client sendet "admin" an Server.
Server empfängt und erwartet ein Passwort.
Client sendet das Passwort.
Server emfängt und sendet "richtig" oder "falsch".
Client empfängt und wertet aus.Nun meine Frage:
Selbstverständlich ist dies, mit einem einfach schreiben von
std::cin >> nutzereingabe; und späterem versenden der Nutzereingabe möglich.
Nun möchte ich eben diese Nutzereingaben und Hinweise möglichst übersichtlich
halten und best möglich gestalten.Code in form von:
std::cout << "Bitte Kommmando eingeben:" << std::endl;
std::cin >> cmd;der mehr als 100 Zeilen umfasst ist unübersichtlich, bleibt nur die Möglichkeit es in Funktionen zu stecken oder gibt es eine andere Möglichkeit? Vielleicht sogar eine Library die dafür geeignet ist?
-
Hey_) schrieb:
Code in form von:
std::cout << "Bitte Kommmando eingeben:" << std::endl;
std::cin >> cmd;der mehr als 100 Zeilen umfasst ist unübersichtlich
Das verstehe ich jetzt nicht, wie du da auf 100 Zeilen kommst. Sollte nicht das folgende ein ausreichendes Grundgerüst sein?
while (cmd!="quit") { std::cout<<prompt; std::getline(std::cin >> arguments, cmd) std::map<std::string, command>::iterator command = commands_map.find(cmd); if (command != commands_map.end()) command->second(arguments); else std::cout<<"Unbekannter Befehl!"<<endl; }
-
SeppJ schrieb:
while (cmd!="quit") { std::cout<<prompt; std::getline(std::cin >> arguments, cmd) std::map<std::string, command>::iterator command = commands_map.find(cmd); if (command != commands_map.end()) command->second(arguments); else std::cout<<"Unbekannter Befehl!"<<endl; }command ist wahrscheinlich ein typedef auf ein functionpointer.