Dvs Δημοσ. 15 Ιανουαρίου 2003 Δημοσ. 15 Ιανουαρίου 2003 Exo ton exis kodika(exo aferesei otidipote den afora to sigekrimeno provlima): int x=11; . . char y[2]; y[0] = static_cast<char>(x); To provlima einai oti den douleuei kai to y pernei asxetes times!
Γηρυόνης Δημοσ. 15 Ιανουαρίου 2003 Δημοσ. 15 Ιανουαρίου 2003 Ποιον compiler χρησιμοποιείς; Κάνε μάι δοκιμή και γράψε: cout << static_cast<char>(11); για να δούμε το αποτέλεσμα. Επίσης είσαι σίγουρος ότι η μεταβλητή x δεν αλλάζει πουθενά και αντί για τον αριθμό 11 να μετατρέπεται κάποιος άλλος;
GrMikeD Δημοσ. 15 Ιανουαρίου 2003 Δημοσ. 15 Ιανουαρίου 2003 Logika prepei na doulevei. Ama den exeis xrono na paideuesai,xrisimopoiise tin itoa tis stdlib. Ama den doulevei kai auti, kapou allazei i metabliti xoris na to pareis xabari.
Dvs Δημοσ. 15 Ιανουαρίου 2003 Μέλος Δημοσ. 15 Ιανουαρίου 2003 Γηρυόνης: exo ton borland c++ builder 6 Anti gia cout dokimasa na to emfaniso se MessageBox alla evgale tetragona (non printable chars) GrMikeD: Akoma kai allos aritmo na einai tha eprepe na mou deixnei allon aritmo! oxi tetragona!!! --- Edit --- xexasa na anafero oti den einai console application alla Win32. Ama thelete mporo na kano post akrivos ton kodika (einai 3-4 grammes parapano).
Dvs Δημοσ. 15 Ιανουαρίου 2003 Μέλος Δημοσ. 15 Ιανουαρίου 2003 loipon me tin itoa douleuei kanonika!!! o pliris kodikas einai: [ ID: ena TEdit] void __fastcall TForm1::IDChange(TObject *Sender) { int x; x = ID->GetTextLen() ; if (x>nameMAX) { char y[10]; //y[0] = static_cast<char>(x); itoa(x,&y[0],10);// <--- doulepse! MessageBox (NULL,&y[0],"123",0); }; kamia idea giati den douleuei to allo? Euxaristo -- Edit --- (to xeftilisa!) OReilly C Pocket Reference <-- exo auto se CHM gia na psaxno grigora alla den exei mesa tin itoa (exe arketes pou kanou tin antistrofi diadikasia alla oxi auti kai oses metatrepoun apo int se string)
Dvs Δημοσ. 16 Ιανουαρίου 2003 Μέλος Δημοσ. 16 Ιανουαρίου 2003 auto pou den douleuei einai to exis: int x=11; . . char y[2]; y[0] = static_cast<char>(x);
Γηρυόνης Δημοσ. 16 Ιανουαρίου 2003 Δημοσ. 16 Ιανουαρίου 2003 Μάλλον πρόβλημα με τον compiler. Λογικά το static_cast έπρεπε να δουλεύει κανονικά. Για να είσαι απολύτως σίγουρος δοκίμασέ το με κάποιο άλλο πρόγραμμα και κάνε το compile με τον ίδιο compiler.
Dvs Δημοσ. 16 Ιανουαρίου 2003 Μέλος Δημοσ. 16 Ιανουαρίου 2003 tha to dokiamso me to M$ studio & tha xanapostaro
GrMikeD Δημοσ. 16 Ιανουαρίου 2003 Δημοσ. 16 Ιανουαρίου 2003 Tora pou to skeftomai isws auto me to static_cast apo ionteger se char na min ginetai giati den einai type safe. Diladi gia paradeigma ama o integer einai -12 poio tha einai to apotelesma? Me to static_cast profanws boreis na dieuruneis alla oxi na perioriseis. Px int a; double b; a= static_char<int>( //illegal! b= static_char<double>(a) //legal! stin deuteri periptwsi borei to double na kratisei ton xwro enos int opote isxuei. Stin prwti epeidi to int katalambanei mikrotero xoro apo to double, to apotelesma einai undefined. Dustuxws i static_char den epistrefei minima lathous i epituxias.
Dvs Δημοσ. 16 Ιανουαρίου 2003 Μέλος Δημοσ. 16 Ιανουαρίου 2003 Sto paradeigma pou dineis tha mporouse apla na kratisei to akeraio meros mono (i osa simantika psifia mporei). pantos oute to y[0] = (char*) x doulepse. Diladi gia paradeigma ama o integer einai -12 poio tha einai to apotelesma? <-- tha parei to unsigned int noumero kai tha valei to apotelesma sto char (auto tha eprepe na kanei kata tin apopsi mou )
GrMikeD Δημοσ. 16 Ιανουαρίου 2003 Δημοσ. 16 Ιανουαρίου 2003 oxi oxi! uparxei austiros orismos tou casting pou prepei na isxuei kata ton idio tropo se oles tis periptwseis! .Den borei na pairnei mono to akeraio meros. Eipame dieurunei, den periorizei!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.