Hi, Ich brauche mal in einer Konsolenanwendung die länge einer eingegebenen Zahl. Es sind nur Zahlen aus dem dualen Zahlensystem (1 und 0).
Das sah bei mir dann so aus:
C++:
#include <iostream.h> usingnamespace std;
int main() { int eingabe; cin >> eingabe; cout << strlen(eingabe) << endl; return0; }
Die Fehlermeldung ist dann: error C2664: 'strlen': Konvertierung des Parameters 1 von 'char' in 'const char *' nicht möglich Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Als Entwicklungsumgebung benutze ich M$ Visual C++ std. Ich bedanke mich schonmal im voraus für eure Hilfe.
Allerdings könnte man auch ein bischen kreativ sein und eine kleine Funktion schreiben:
C++:
int numberLength(int n) { int count = 1; while ((n/=10) > 0) ++count; return count; }
Und schon hat man die Länge der Zahl.... (hoffe ich. Das ist ungetestet) -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
Stimmt, aber wenn du C++ nimmst, dann nimm gleich std::string! -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!
int main() { //reserviern eines char-arrays von 128 Elementen + das abschließende // '\0' char
char* eingabe = newchar[MAX_DEFINED_INPUT+1];
//wenn du auch die leerzeichen einlesen willst ist getline zu empfehlen da //hast du jetzt dann die komplette eingabe bis zum terminierenden Enter drin
cin.getline(eingabe, MAX_DEFINED_INPUT, '\n');
cout << strlen(eingabe) << endl;
//noch irgendetwas mit der eingabe machen
doSomethingWithEingabe();
//abschließend den reservierten Speicher freigeben
delete eingabe;
return(-1); }
Dieser Post wurde am 21.04.2004 um 19:10 Uhr von DerSchwarzeSchlumpf editiert.