Eingabe auf Zahlen beschränken, dynamische Arrays
-
Hallo,
hab noch zwei Fragen. Und zwar würde ich gerne eine Eingabe auf Zahlen beschränken. Ist das mit einfachen Mitteln möglich? Wenn ja wie?
Ausserdem wüsste ich gerne, ob man die größe "normaler" Arrays auch im Programm angeben kann. Also zB nach der Abfrage, wie oft ein Wert eingelesen ist. Das Array dann genau so groß wie nötig. Hab das Programm für das es ist schon mal hier reinkopiert. Siehe:
[url]
http://www.c-plusplus.net/forum/viewtopic-var-t-is-165125.html
[/url]Vielen Dank für eure Hilfe!
-
FOX.Hunter schrieb:
hab noch zwei Fragen. Und zwar würde ich gerne eine Eingabe auf Zahlen beschränken. Ist das mit einfachen Mitteln möglich? Wenn ja wie?
Eingeben über IO-Streams in eine int-Variable und anschließende Kontrolle der Fehlerflags:
int i; cin>>i; if(!cin) ... //falsche EingabeAusserdem wüsste ich gerne, ob man die größe "normaler" Arrays auch im Programm angeben kann. Also zB nach der Abfrage, wie oft ein Wert eingelesen ist. Das Array dann genau so groß wie nötig. Hab das Programm für das es ist schon mal hier reinkopiert.
Normale Arrays (
Typ var[x];) bekommen zur Compile-Zeit ihre Größe verpasst (C99 kennt VLA's, ältere C-Versionen und C++ nicht), aber du kannst STL-Container oder valarrays verwenden, die lassen sich per resize() beliebig vergrößern/verkleinern, wenn Bedarf besteht.
-
Danke schon mal. Das habe zweite ist jetzt soweit klar. Leider finde ich in meinem Buch ausser das ! das Gegenstück zu void* ist nichts. Kannst Du vielleicht ein kurzes beispielprog schreiben, das abbricht, wenn keine Zahl eingegeben wird. Wäre super!
-
Davon dürften im Forum schon genug Programme rumschwirren.
Zur allgemeinen Erklärung empfehle ich einen Blick in meine Magazin-Artikel über IO-Stream's (Ein- und Ausbabe in C++) und Container (Aufbau der STL 1).