Blutiger C++-Noob braucht Hilfe

Hallo Leute,

Exakt vor 30 Minuten habe ich damit begonnen mich an C++ heran zu tasten (ohne irgend welche Ziele dabei im Auge zu haben). Nachdem ich mich mit den Datentypen auseinander gesetzt habe, habe ich folgenden kleinen Code geschrieben:

Code:
#include <iostream>

using namespace std;

int main(){
    
   char Text[30];
   cout << "Geben sie einen text ein: "; cin >> Text;
   cout << "\nSie haben folgenden text eingegeben: " << Text;
   cout << "\n\n";
   
   system("PAUSE");

}


Wenn ich besagten code jetzt nun kompiliere und die exe laufen lasse funktioniert das eigentlich ganz gut, hier ein kleines beispiel:

cpic1lb1.gif


Sobald jetzt aber ein Leerzeichen mit ins Spiel kommt, gibt das Programm alle Zeichen aus, die Vor dem Leerzeichen eingegeben wurden (was ich verständlicherweise nicht will, da ich die komplette Eingabe ausgeben möchte):

cpic2pu3.gif



Nun meine Frage: Was zur Hölle hab ich falsch gemacht? Es ist wirklich niederschlagend wenn ein so kleiner simpler code mich in die Knie zwingt^^
 
das liegt daran dass die funktion cin den string exakt bis zum erstern leerzeichen einliest und dann aufhört.
Damit das so funzt wie du willst brauchst du die funktion cin.getline.
Ihr übergibst du als ersten Paramter die variable in die geschreiben werden soll und als 2ten die maximale anzahl an zeichen die gelesen werden sollen also in diesem fall 30
also is der befehl in deinem Fall
Code:
cin.getline(Text, 30);
Ahja, und nochn tipp, neue befhele sollte man meist ausser in if abfragen usw. in neue zeilen schreiben(also nich so wie bei dir in zeile 8). Muss man nich, is aber übersichtlicher.
 
Zurück
Oben