String-Länge bei der Deklaration festlegen - geht das?
-
Hallo zusammen,
Ich möchten gerne einen String deklarieren, der zu Beginn noch leer ist und später eine Zeichenkette (Per Tastatureingabe) zugewiesen bekommt.
Der String soll genau für 25 Zeichen Kapazität haben.
Überzählige Zeichen sollen abgeschnitten werden.Bisher habe nur den Ansatz gefunden, die Zeichengabe komplett in dem String abzugelegen und dann per resize-Methoden die auf 25 festzulegen.
Gibt es noch einen anderen Weg?
Besten dank im Voraus!
Zeeblusblus
-
Ja, direkt auf 25 resizen und dann .read benutzen.
http://en.cppreference.com/w/cpp/io/basic_istream/read
Denk aber dran, dass der Rest der Eingabe dann noch im Stream steht. Siehe .ignore.
-
Ich glaube er will max. 25 Zeichen lesen, nicht immer genau 25 Zeichen.
-
Ja, du könntest deine eigene Stringklasse schreiben. Du erbst von der Standard-Stringklasse und überschreibst den entsprechenden operator (operator <<, operator =, etc.) In dessen Programmlogik holst du über get die einzelnen Chars bis max 25 Zeichen.
-
Exilius schrieb:
Ja, du könntest deine eigene Stringklasse schreiben.
Da mag ich ein simples
scanf("%25s", ...)doch lieber.
-
Hat auch weniger Memory-Leaks.
-
Nathan schrieb:
Hat auch weniger Memory-Leaks.
Ja, von string abzuleiten fragt geradezu nach Memory-Leaks.