Ich habe cin.getline nach cin.ignore() verwendet, aber ich bekomme eine Fehlermeldung, die nicht zugewiesen int ... Nicht sicher, was zu tun ist oder was falsch ist. Irgendwelche Vorschläge?So verwenden Sie Zeichenfolge mit Phrasen, die Leerzeichen enthalten
Hier ist mein Code:
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
string phras;
cout << " Provide a phrase, up to 30 characters with spaces > " << endl;
cin.ignore();
cin.getline(phras, sizeof(phras));
cout << " The phrase is: " << phras << endl;
cout << endl;
return 0;
}
UPDATE Ich änderte cin.getline (phras, sizeof (phras)); to getline (cin, phras) Problem gelöst! Danke für die Hilfe alle!
Warum haben Sie Code in die Frage eingefügt, die Sie nicht kommentieren sollen? Wenn es nicht relevant ist, lassen Sie es aus. – Barmar
Die '>>' Operation, um das einzelne Zeichen zu erfassen, wird ein neues Zeilenzeichen im cin Puffer hinterlassen. Sie können 'cin.ignore()' verwenden, um es zu entfernen. –
@paulRooney Also sollte ich das vor dem cin >> schreiben oder nachher schreiben? Entschuldigung für die Klärungsfrage. Ich möchte nur sicherstellen, dass ich das richtig mache! Danke dir übrigens. –