char array mit nicht definierter Größe initialisieren

paddymann

Mitglied
Hallo!
Ich möchte ein char array unbekannter Größe mit einem String, den der Benutzer eingibt initialisieren. Wie lässt sich das bewerkstelligen?

Folgendes geht ja z.B. nicht:
Code:
char array[];
...
cin.get(array, sizeof(array));
Dann bekomme ich nämlich immer den Fehler "array size missing in 'array'

Danke!
 
Hallo,

ein statisches Array darf keine unbestimmte Größe haben, und der sizeof Operator gibt dir nur die Größe von Objekten die auf dem Stack angelegt wurden (d.h. deren Größe statisch feststehen muss) zurück ...
Du musst schon eine Größe für dein Eingabefeld angeben, ansonsten funktioniert das so nicht ...

Gruß,
RedWing
 
Das heißt ich kann die Größe des Array nicht automatisch an die Länge des Strings anpassen?
Dann würde das Array ja in den meisten Fällen viel mehr Speicher belegen als nötig wäre!?
Ich dachte C++ wäre "Ressourcensparend"?
 
Verwende doch ein Objekt der string-Klasse, um die Eingabe zu speichern. Da kümmert sich die STL um die nötige Speicherreservierung.
C++:
string strInput;
cin >> strInput;
Gruß
MCoder
 
Danke für die Antworten!

Wenn ich das jetzt mit einem String löse, wie kann ich "cin" anweisen eine Leerstelle in einem String nicht als Begrenzerzeichen anzusehen? Das ich also z.B. auch solche Zeichenketten in den String schreiben kann:"Dieser Satz soll in den String!"

Mit cin.get() habe ich da keinen Erfolg, weil get() ja ein array braucht (glaube ich).

thx und mfg
.patrick
 
Ich habe Probleme bei den Suchergebnissen mit "zeilenweise einlesen" was zu finden, was mir weiterhilft!?
Größtenteils beziehen sich die Themen uaf zeilenweise auslesen aus einer Datei...
Wie kann ich denn einen ganzen Text den der Benutzer eingibt in einer String Variable speichern? Habe keine C++-Funktino gefunden.
 
Ich habe Probleme bei den Suchergebnissen mit "zeilenweise einlesen" was zu finden, was mir weiterhilft!?
Größtenteils beziehen sich die Themen uaf zeilenweise auslesen aus einer Datei...
Das macht keinen Unterschied weil es völlig gleich funktioniert.
Wie kann ich denn einen ganzen Text den der Benutzer eingibt in einer String Variable speichern? Habe keine C++-Funktino gefunden.
Verstehe ich nicht... :rolleyes:
C++:
string s;

if (getline(cin, s)) {
  cout << "sie haben eingegeben: " << s << endl;
}
Gruß
 
Zurück