ChatServer: Probleme mit cin.getline()



  • Hallo liebe Community !

    Es ist mal wieder soweit das ich mal wieder keine Ahnung habe was ich falsch mache. 😕 😕 😕

    ALSO mein Problem ist das in den "Narichten" Char wo der Benutzername mit reingeschrieben werden soll und dieser mit der Naricht dann an sich versendet werden soll also das in der Variabele zb.(Benutzername: <BlaBla>) nicht funktioniert. Der Benutzername wird halt leider nicht mitübertragen sondern nur die selbst geschriebene Naricht. Meine Vermutung ist das das an dem Cin liegt aber ich habe keine Ahnung was ich da sonst schreiben soll. 🙄 😞

    char Naricht[256];
    
    			cout << Benutzername << ": ";
    
    			cin.getline(Naricht, 256);
    
    			send(sConnect, Naricht, 256, NULL);
    

    Ich hoffe ihr könnt mir helfen !!
    Falls das kleine Stück Code nicht reicht um den Fehler zu finden kaann ich auch den Rest schicken.

    Danke im vorraus für eure Hilfe !



  • Du sendest halt nur die Nachricht, nicht den Benutzernamen.



  • Ok danke für deine Antwort.
    Ich weiss das ich ja da nur die Naricht senden aber ich wollte das die Variabale "Benutzername" mit in die Naricht von der jeweiligen Person integriert wird.

    Deswegen hab ich erst cout << Benutzername und dann schreibt ja die jenige Person ihre Naricht. Und dann wollte ich das die GANZE Zeile in die Variabele "Naricht" geschrieben wird und dann verschickt wird.
    Weisst du was ich meine ?



  • Ach ja und was ich vergessen habe zu erwähnen. Die Variabele "Benutzername" wurde schon ein Stück weiter oben von dem Benutzer gefüllt. Cin <<



  • Möglicherweise ungefähr so?

    std::string user, text;
    
    std::getline(std::cin, user); //name einlesenn
    std::getline(std::cin, text); //nachricht einlesen
    
    std::string message = user + ':' + text; //name und nachricht zusammenfügen
    send(sConnect, message.data(), message.size(), nullptr); //...und senden
    


  • DANKE für deine Antwort.
    Wie empfange ich dann den string wieder ??



  • Programmer2000 schrieb:

    DANKE für deine Antwort.
    Wie empfange ich dann den string wieder ??

    Wie hast Du es denn bisher gemacht?



  • Ich hab jetzt den Vorschlag von Techel umgesetzt. Nur weiss ich jetzt nicht wie ich jetzt zu send(sConnect, message.data(), message.size(), NULL) das recv mache weil dann gibt es bei message.data() einen fehler nämlich das der string nicht in einen char umgewandelt werden kann



  • Programmer20000 schrieb:

    Ich hab jetzt den Vorschlag von Techel umgesetzt. Nur weiss ich jetzt nicht wie ich jetzt zu send(sConnect, message.data(), message.size(), NULL) das recv mache weil dann gibt es bei message.data() einen fehler nämlich das der string nicht in einen char umgewandelt werden kann

    Genauso, wie Du es vorher gemacht hast.



  • DANKE an alle für euere Mithilfe ! Habe den Fehler behoben. Es funktioniert alles einwandfrei. Großen dank an Techel ! Ich hab an deinem Code noch ein bisschen rumgespielt und es funktionierte gut !!


Anmelden zum Antworten