Konwersja int do char.

iks de
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 97
0

Witam. Mam uciążliwy problem z konwersją zmiennej int do char. Próbowałem wiele metod konwersji z internetu i niby tamte metody działały innym ale mi wyświetla krzaki ostatecznie. Czy ktoś wie co źle robię?

Przykład który mi m.in. nie działa:

Kopiuj
int a = 5;
char b;
b = (int) a;


std::cout<<b<<std::endl;

YooSy
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 472
0

Jakiego znaku spodziewasz się na ekranie rzucając na char wartość 5?
Do rzutowania bezpieczniej użyć static_cast.

W nawiasie powinno być char.

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
3

char i int to liczby. Nie potrzebujesz w tym przypadku żadnego jawnego rzutowania (chociaż sprawa się komplikuje jeśli wartość nie będzie się mieściła w typie docelowym). Jednak char jest traktowany specjalnie przez funkcje obsługujące wyjście/wejście, i jest traktowany jako znak o tej wartości. Na znakomitej większości systemów 5 nie jest znakiem drukowalnym, więc jego wypisywanie jest błędem.

Potat0x
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 372
2

Czy chodziło o to?

Kopiuj
b = a + '0';

http://www.rapidtables.com/code/text/ascii-table.htm

iks de
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 97
0

Dzięki oto chodziło.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.