Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 21.06.2003, 14:12 Titel: short-Zahl = (short)char-Zahl |
|
|
Hab folgendes Problem:
Code: |
short Zahl1;
short Zahl2;
char cZahl1[5];
char cZahl2[5];
cin >> cZahl1;
cin >> cZahl2;
Zahl1 = (short)cZahl1;
Zahl2 = (short)cZahl2;
cout << "cZahl1=" << cZahl1 << " cZahl2=" << cZahl2 << " Zahl1=" << Zahl1 << " Zahl2=" << Zahl2;
|
Angenommen ich gebe 4 und 7 ein, dann bekomme ich folgende Ausgabe:
cZahl1=4 cZahl2=7 Zahl1=-620 Zahl2=-628
Bei anderen Werten stimmen diese wieder bei den cZahlen, aber die short-Zahlen haben immer denselben Wert von -620 & -628.
Ihr wisst sicherlich was ich eigentlich vor habe, die Zahl im String in die short-Variable schreiben.
Naja funktioniert so jedenfalls nicht.
Wie soll's denn sonst funktionieren? _________________ Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.06.2003, 14:44 Titel: |
|
|
Das geht so nichtm, wie dus gemacht hast. Bei einzelnen Ziffern kannst dus mit Index schreiben:
Code: |
Zahl1 = (short)cZahl1[0];
Zahl2 = (short)cZahl2[0];
|
Bei mehrstelligen Zahlen würde ich es mit atoi() machen.
Sonst kannst dus auch so machen, dass du aus dem String die letzte Ziffer nimmst. Dann addierst du das 10-Fache der zweitletzten Ziffer, etc... _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 21.06.2003, 15:52 Titel: |
|
|
1. bähh c-casts.
2. cin>>charZahl;
shortZahl=static_cast<short>(atoi(charZahl)); |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 21.06.2003, 16:05 Titel: |
|
|
gl_echse hat Folgendes geschrieben: | 1. bähh c-casts. |
Kannst du mir das begründen? Was soll an static_cast<> besser sein? _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 21.06.2003, 16:10 Titel: |
|
|
Danke für eure Beiträge!
Funktioniert prächtig. _________________ Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
|
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 21.06.2003, 16:12 Titel: |
|
|
1. wenn du nach c-casts in deinem quellcode suchst, wirst du bei "(" 1000ende von ergebnissen haben, wobei max. 1/20 davon casts sind;)
bei c++ ("_cast<") wirst du nur casts finden.
2. ich habe nicht gesagt, dass static_cast besser ist als ein c-cast, ich habe gesagt dass c++-casts besser sind als c-casts, und du musst mir zustimmen, dass es mehr c++-casts gibt als static_cast. zudem kann man mit c++-casts mehr machen als mit c-casts. z.b. kannst du mit const_cast "das const" bei variablen wegcasten, oder mit dynamic_cast sichere downcasts durchführen.
3. gehört es zum guten geschmack: wenn man schon rumschreit, man programmiere c++, dann soll man kein c mit soße coden;)
]edit: reicht das? |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 21.06.2003, 16:33 Titel: |
|
|
> 1. wenn du nach c-casts in deinem quellcode suchst, wirst du bei "(" 1000ende von ergebnissen haben, wobei max. 1/20 davon casts sind;)
Jepp stimmt aber ich muss zugeben, dass ich noch nie nach Casts suchen musste, da ich sie möglichst vermeide.
> 2. ich habe nicht gesagt, dass static_cast besser ist als ein c-cast, ich habe gesagt dass c++-casts besser sind als c-casts, und du musst mir zustimmen, dass es mehr c++-casts gibt als static_cast.
Es gibt in C nur statische Casts, also kann ich auch nur von einer Art reden. ;)
> 3. gehört es zum guten geschmack
Was ist "guter Geschmack"? Du kannst niemandem vorschreiben, was er gut zufinden hat. :P Ich persönlich finde, dass C-Casts schöner aussehen als static_cast<blub>.
> wenn man schon rumschreit, man programmiere c++, dann soll man kein c mit soße coden;)
C-Casts und static_cast<> unterscheiden sich technisch nicht, also ist es im Endeffekt egal. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 21.06.2003, 16:45 Titel: |
|
|
ja, aber wie gesagt, habe ich gesagt, dass c-cast "schlechter" sind als c++-casts. deine argumentation, nur die statischen casts zu vergleichen, ist völlig schwachsinnig, und wenn man ein mix aus c- und c++-casts schreibt, sollte man zum kochen wechseln
zu 1.: natürlich versucht man casts zu vermeiden, aber es gibt einige stellen im code, bei denen es probleme geben kann. dann muss man beim debuggen, nach entsprechender meldung, nach dem cast suchen. mach dass dann bitte mal mit c-casts |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 21.06.2003, 16:54 Titel: |
|
|
> deine argumentation, nur die statischen casts zu vergleichen, ist völlig schwachsinnig
Das war keine Argumentation, sondern das Thema der Diskussion. Wenn du schon debatieren möchtest, dann lerne es vorher. Wenn man das Thema nicht von den Argumenten trennen kann, sollte man erst garnicht den Mund aufmachen. :P
> wenn man ein mix aus c- und c++-casts schreibt, sollte man zum kochen wechseln
Begründung?
> zu 1.: natürlich versucht man casts zu vermeiden, aber es gibt einige stellen im code, bei denen es probleme geben kann.
Bitte ein Beispiel nennen, bei dem man um ein Cast(nicht statisch) nicht drumherum kommt.
> dann muss man beim debuggen, nach entsprechender meldung, nach dem cast suchen. mach dass dann bitte mal mit c-casts
Doppelklick auf den Fehler und du bist in der Zeile... _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 22.06.2003, 14:57 Titel: |
|
|
bei runtimefehlern ;P |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 22.06.2003, 17:01 Titel: |
|
|
Genau, und deswegen frage ich dich auch nach Beispielen. Du solltest es nochmal lesen, und diesmal aufmerksam. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
|