Wie ordne ich ein char-Zeiger mit cin?

Also im Grunde, wenn ich versuche, dies zu tun

char* inputFileName;
cout<<  "Filename: "; cin>>*inputFileName;

es ermöglicht mir die Eingabe der Dateinamen, aber wenn ich drücken Sie die EINGABETASTE, bekomme ich eine unbehandelte Ausnahme Fehler. Irgendwelche Ideen?

Bearbeiten, auch wenn ich versuche

char* inputFileName;
cout<<  "Filename: "; cin>>inputFileName;

Bekomme ich eine debug assertion failed wenn ich versuche, um Sie auszuführen.

inputFileName ist nur ein (dangling) Zeiger, es bietet keine Speicher für die Zeichenfolge; Sie haben zum reservieren von Speicher für den string, wie denn nun bist du nur sagen cin zu schreiben, die lese-Zeichen in einer zufälligen (möglicherweise ungültigen) Speicher. Studie C-strings auf ein Buch, bevor messing mit Ihnen.
ist die richtige. Auch sollte man nicht dereferenzieren inputFileName.
Der richtige Weg ist, um sich nur nicht mit einem char *. Das ist es, was std::string ist.

InformationsquelleAutor Elliot678 | 2013-05-02

Schreibe einen Kommentar