Anfänger Fragen
-
Hallo erstmal.
Hab da ein paar Anfänger Fragen.
Ich steh vor dem Problem, dass ich bei der Objektorientierung ein Feld haben möchte, in dem man nur Zahlen schreiben kann.
Also mir wäre ein Befehl ganz sinnvoll, der Abprüft ob eine Zahl oder ein String in einer Variable steht.
Desweiteren möchte ich ein Eingabefeld nur für eine bestimmte Anzahl an Zeichen zulassen.
Desweiteren möchte ich in einem Listfeld 4 Informationen darstellen, die an der gleichen Stelle ausgegeben werden sollen. Es sollte in etwa so aussehen:
Information1+ x +Info2+ x +Info3+ x + Info4.
x = auffüllende Leerzeichen bis zum nächsten Infoblock. Die Leerzeichen müssen variable zur Länge des vorher gehenden Infoblocks sein. Also z.B. Infoblock1 darf max. 10 Zeichen lang sein. Wenn er nur 5 Zeichen lang ist, müssen 6 Leerzeichen folgen. Ist er 8 Zeichen lang, müssen 3 Leerzeichen folgen.Danke für die Posts, vielleicht finde ich auch, dass eine oder andere in der c++ Hilfe.
-
Öhm klingt alles eher danach als wenn du eine graphische Oberfläche benutzt, kann das sein?
Weil dort könntest du auch alles ganz bequem einstellen ( editfeld soll nur zahlen erlauben und eine bestimmte länge haben etc.
Für das Leerzeichnenproblem würde ich die Zahl einfach in einem string packen und strlen() verwenden, dass ergebnis von 11 abziehen und du das deine anzahl der leerzeichen. Die gibts du dann einfach mit z.b. einer for-schleife aus
gruß
1280x1024
-
Also mir wäre ein Befehl ganz sinnvoll, der Abprüft ob eine Zahl oder ein String in einer Variable steht.
Man benutzt doch für verschiedene Daten verschiedene Datentypen. Wenn du nur Integers, Doubles etc. zulässt, dann erlaubst du eben nur Zahlen und keine Strings
Desweiteren möchte ich ein Eingabefeld nur für eine bestimmte Anzahl an Zeichen zulassen.
#include <iostream> #include <string> template<class charT, class traits, class Alloc> std::basic_istream<charT,traits> &read_n(std::basic_istream<charT,traits> &in, std::basic_string<charT,traits,Alloc> &s, size_t n) { s.reserve(n); for(size_t i=0;i<n;++i) { int got=in.get(); if(got==EOF || got=='\n') //delim return in; s+=got; } return in; } int main() { std::string foo; read_n(std::cin,foo,5); std::cout << foo << std::endl; }
Desweiteren möchte ich in einem Listfeld 4 Informationen darstellen, die an der gleichen Stelle ausgegeben werden sollen. Es sollte in etwa so aussehen:
#include <iostream> int main() { for(unsigned long i=0;i<10;++i) std::cout << '\r' << i; std::cout << '\n'; }
HTH
(btw. benutz bitte bessere Topics.)
-
Danke erstmal für die Antworten.
Das Thema hätte ich in der Tat besser bezeichnen können, aber mir fällt bis jetzt keine bessere Überschrift ein. Außerdem waren das gerade mal drei Fragen die mir spontan einfallen.Mit einer graphische Oberfläche arbeite ich in der Tat, aber dass hab ich schon erwähnt denk ich.
Dass man dort alles bequem einstellen kann, hab ich mir schon gedacht. Jedoch bringt mir das wenig, wenn ich mit (z.B.) dem Konsolenexperten arbeite. Deswegen wollte ich die Befehle wissen.
Das ich nur Zahlen zulasse ist ein kluger Gedanke, aber ich möchte ja nicht eine einfache Lösung, sondern das Prinzip der ganzen Geschichte.@ kingruedi:
Danke für deine Quelltext auszüge. Ich muss das erstmal alles ganz langsam checken :). Für einen Anfänger wie mich ist sowas (für dich sicherlich einfaches) ein ziemlich heftiger Brocken.Danke aber nochmals
MFG T-Rex