Kezdőoldal » Számítástechnika » Programozás » C++-ban hogy használok egy...

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?

Figyelt kérdés

2016. ápr. 8. 18:09
1 2
 1/13 anonim ***** válasza:
Ugyan úgy, mint a többi egész típust.
2016. ápr. 8. 18:13
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
A char lényegében ugyanolyan szám típus, mint az int, a különbség csak a kiíratásában/beolvasásában van. Elég körülményes közvetlenül char-ba olvasni számot, a legjobb módszer ha először beolvasod egy char tömbbe, vagy stringbe karakterekként, majd a szöveget integerré alakítva (pl atoi függvénnyel) adod át a char változódnak. Ez persze önmagában nem küszöböli ki a túlcsordulásokat, és a hibás inputot (bár hibát nem fog dobni)
2016. ápr. 8. 21:47
Hasznos számodra ez a válasz?
 3/13 A kérdező kommentje:

És így mennyire elegáns?

std::cout << static_cast<int>(A) << std::endl;

2016. ápr. 9. 16:00
 4/13 A kérdező kommentje:

Esetleg ez?

unsigned char A = 4;

std::cout << (int)A << std::endl;

2016. ápr. 9. 16:01
 5/13 anonim ***** válasza:
Ha átalakítani akarod akkor static_cast, de nem biztos, hogy ez a megfelelő megoldás a problémádra. Miért szeretnél charba beolvasni majd azt inté alakítva használni? Illetve ha inté alakítód az ascii kódja lesz az, nem amit 5, ha például azt olvastad be.
2016. ápr. 9. 17:56
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:

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.

2016. ápr. 9. 21:24
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:
Akkor viszont az lenne a kérdésem, hogy nem ezért van unsigned és signed char, mert hogy számok tárolására is lehet használni?
2016. ápr. 10. 17:21
 8/13 anonim ***** válasza:
Nem, a signed char előjeles, az unsigned előjel nélkül. (azaz, a signed char jellemzően -128..127 között vesz fel értékeket, az unsigned jellemzően 0..255-ig)
2016. ápr. 10. 17:36
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:
A sima char pedig megint egy külön típus.
2016. ápr. 10. 17:37
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:
Miért lenne? Jellemzően (esetek jelentős részében) a <typemane> = signed <typename>, de az biztos, hogy vagy a signed, vagy az unsigned változatával lesz egyenlő.
2016. ápr. 10. 17:43
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!