Eine zahl größer als 4294967295 (unsigned int) Speichern?
-
Allerdings würde ich die Zahlen anschließend in einem Vektor speichern und nicht in 10 Variablen:
vector<int> numbers; size_t len=KundN.length(); for(int i=0; i<len; ++i) { char tmp=Kund[i]; numbers.push_back(atoi(&tmp)); }Das hier
x1 = atoi(KundN[0]);geht nicht, weil da ein const char und kein const char* bei rauskommt. Und ein & vor KundN[0], also "&KundN[0]" geht nicht, weil dann wieder der gesamte String beachtet wird, daher musst du eine temporäre Variable verwenden und von der die Adresse übergeben.
Zu deiner Frage mit dem uint64, ja das geht auf einem 32-Bit Windows, aber wieso nimmste nicht einfach wie gesagt einen String? Damit ist das doch viel handlicher. Wenn du auch noch rechnen willst oder so mit dieser großen Zahl, dann guck dich mal im Forum um, da gab es schon öfter Themen zu beliebig großen Zahlen.
-
logorithmen
-
Dino Crisis schrieb:
x1 = atoi(KundN[0]);Habe probiert... allerdings hat das noch nicht einmal auf anhieb funktioniert...
char tmp; tmp = KundN[0]; x1 = atoi(&tmp);Ja das geht aber auch so:
#include <iostream> int main() { std::string KundN("123"); int x1 = atoi(&KundN[0]); std::cout << x1 << std::endl; return 0; }Musste man so lösen, da nämlich wegen const char irgendetwas nicht funktioniert hat. Ist ja "auch" eine C Funktion...
Ne, das hat mit C Funktion nichts zu tun, sondern es fehlte einfach der & Operator in dem Beispiel.
unsigned __int64 geht dann bis 8589934590.
Nein, viel mehr. Schau:
#include <iostream> int main() { std::cout << "unsigned int: " << std::numeric_limits<unsigned int>::max() << std::endl; std::cout << "unsigned __int64: " << std::numeric_limits<unsigned __int64>::max() << std::endl; return 0; }Ausgabe:
unsigned int: 4294967295 unsigned __int64: 18446744073709551615mfg
-
Dino Crisis schrieb:
und zwar will ich eine 10 Ställige Zahl bearbeiten.
HILFE!!!
Wieviel Pferde passen denn so in eine Zahl
Und allgemein die Frage wieso du unbedingt deine Kundennummer in eine
Zahl verwandeln willst. Belaß sie doch einfach als String. Nur
bei der Prüfung auf Gültigkeit würde ich die notwendigen Stellen des
Strings als Zahl auffassen.
-
Oh man junge... wider ein Spaten spam... Lese mal meine Sig du asi!
Ich habe gesagt das es nur ein beispiel ist. Es müssen alle Ziffern verfügbar sein.
--- Diese Unregistrierter User gehen mir echt auf den Sack ---
-------------------------------------------------------------------Also die idee mit den unsigned int64 finde ich eigentlich nicht schlecht. Aber ich kann mir die umsätzung als String wirklich nur schwer vorstellen. Bosonders da es bei mir wirklich nicht funktioniert hat. (oder Falsch geemacht habe)
Könnte mir da nicht jemand ein Beispiel geben?
Ich "programiere" auch erst seit kurzer zeit...
Gruß und Danke,
Dino
-
Dino Crisis schrieb:
...umsätzung...Bosonders...geemacht...programiere
Könnte es sein, daß dein eigentliches Problem tiefer liegt?
- pisanische Rechtschreibung?
- Konzentrationsschwierigkeiten?und deiner Signatur kann ich auch nur entnehmen, daß du Schüler bist;
was auch nicht alles verzeiht (es sei denn du bist erst 11).Egal, zurück zum Thema...
-
Jdeer slltoe so shciebren wies ihm gfället

-
std::string KundN("123"); int x1 = atoi(&KundN[0]);Genau das habe ich beschrieben. Wenn KundN ein String ist geht das nicht. Dann wird nicht nämliche die Adresse des ersten Zeichens übergeben und atoi läuft bis zum Ende des Strings durch und wandelt dadurch den gesamten String und nicht nur das erste Zeichen um (habe es auch zusätzlich nochmal getestet).
In diesem Beispiel hätte x1 den Wert 123.
-
Dino Crisis schrieb:
Also die idee mit den unsigned int64 finde ich eigentlich nicht schlecht. Aber ich kann mir die umsätzung als String wirklich nur schwer vorstellen. Bosonders da es bei mir wirklich nicht funktioniert hat. (oder Falsch geemacht habe)
Mit Strings ist das so: Du kannst damit nicht wirklich rechnen, aber das willst du bei den KundenNr ja eigentlich auch nicht. Du kannst Strings nähmlich vergleichen. Beispiel:
#include <string> #include <iostream> int main() { std::string KundenNr1("5615234546841"); std::string KundenNr2("8916512354645"); std::string KundenNr3("5615234546841"); std::cout << "KundenNr1 == KundenNr2 " << (KundenNr1 == KundenNr2) << std::endl; std::cout << "KundenNr1 == KundenNr3 " << (KundenNr1 == KundenNr3) << std::endl; std::cout << "KundenNr2 == KundenNr3 " << (KundenNr2 == KundenNr3) << std::endl; return 0; }mfg.
-
Hi Vellas,
Vellas schrieb:
... mit dieser großen Zahl, dann guck dich mal im Forum um, da gab es schon öfter Themen zu beliebig großen Zahlen.
hast du da evtl ein paar passende Schlagworte für die Suche, mit Zahlen oder groe Zahlen habe ich noch keine zufriedenstellenden Ergebnisse erreicht.
Mich beschäftigt zur Zeit nämlich auch noch ein Problem mit zu großen Zahlen.
-