C++-ban hogy használok egy char típust számként (pl. unsigned charként), ha cinnel szeretném bekérni az értékét?
És így mennyire elegáns?
std::cout << static_cast<int>(A) << std::endl;
Esetleg ez?
unsigned char A = 4;
std::cout << (int)A << std::endl;
Hogy értsd amit az utolsó írt:
A charban tárolt szám egy-egy karakter ASCII kódja. A probléma ott kezdődik, hogy ha közvetlenul char-be olvasol be, akkor a karaktert fogja beolvasni, és annak az ASCII kódja kerül bele. Ezzel az a baj, hogy pl a számoknak nem önmaguk az ASCII kódja. Illetve pl a cin>>ch; művelet esetén ha 10-et írsz be, akkor az 1-et mint karaktert beolvassa, a 0 meg 'ottmarad'. chart használni számként csak akkor van értelme, ha valami belső szerkezetben használod, és rettentő nagy mennyiségben, ahol relevánssá válhat az inthez képest kisebb mérete. Ilyenre mondjuk példa egy régebbi egyetemi feladatom, ahol létre kellett hozni egy típust a nagyon nagy számoknak úgy, hogy minden számjegyet egy tömb elemeként tárolunk. Ennek a típusnak a lényege, hogy akár több száz számjegyű számokat tudj eltárolni, a határt a számítógép memóriája szabja meg. Ebben az esetben nem mindegy, hogy egy számjegyet 1 byte-on, vagy 4-en tárolok. De ettől eltekintve, a char típus számként való használata, KÜLÖNÖSEN közvetlenül beolvasás/kíiratásra, fölösleges, és körülményes.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!