bekomme immer 0 als ausgabe
-
hallo,
hier der code:#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;int main() { char wort[20]; int zahl; cout<< "Wort eingeben: "<< endl; cin>> wort; zahl = atoi(wort); cout<< zahl << endl; return 0; }
ich bekomme immer 0 als zahl ausgegeben. ist das normal?
mfg dr.jones
-
1. Du darfst auch nur Zahlen eingeben. Bei mir klappt es wenn ich nur Zahlen eingebe, wie "123" u.s.w.
2. Wenn du schon mit c++ arbeitest dann benutz auch strings anstatt char[] oder char*:
using namespace std; //nicht vergessen sonst musst du immer std::cout und so schreiben int main() { string wort; int zahl; cout<<"Wort eingeben: "<<endl; cin>>wort; zahl = atoi(wort.c_str()); //c_str() wandelt einen string in char* um, damit die funktion auch klappt cout<< zahl << endl; return 0; }
Achja so wie oben funzt es bei mir.
Gruß KaraHead
-
Und stringstream statt atoi...
-
Mis2com schrieb:
Und stringstream statt atoi...
Es geht aber noch mehr L33T:
// leichter cast um Zahlen in Strings und umgekehrt zu casten template<typename A, typename T> __forceinline const A lexical_cast(const T& source) { std::stringstream s; s << source; A destination; s >> destination; return (destination); }
-
Mis2com schrieb:
Und stringstream statt atoi...
ich lege ein stringstream-Objekt an, um eine Zeichenkette in eine Zahl zu wandeln... Genau.
Nur weils atoi in C schon gab, heißt das nicht, dass mans nicht mehr in C++ benutzen soll.
-
DrGreenthumb schrieb:
Nur weils atoi in C schon gab, heißt das nicht, dass mans nicht mehr in C++ benutzen soll.
Also wenn man von der größe der exe ausgeht ist die C-Lib ein bischen zu groß. Da würde es schon sehr viel Sinn machen die hardcore C++ variante zu nehmen, da die kleiner ist.
Oder man baut so einen richtig geilen L33T cast wie den lexical_cast von mir, der kann mehr als nur atoi! Sogar in beide richtungen
-
nix da schrieb:
Also wenn man von der größe der exe ausgeht ist die C-Lib ein bischen zu groß. Da würde es schon sehr viel Sinn machen die hardcore C++ variante zu nehmen, da die kleiner ist.
Wo ist das so? Von welchem Compiler sprichst du?