Форум программистов, компьютерный форум CyberForum.ru

Вывод адреса по указателю на char в std::cout - C++

Восстановить пароль Регистрация
 
mogtar
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 51
30.11.2013, 10:40     Вывод адреса по указателю на char в std::cout #1
Есть такая вот функция.
C++ (Qt)
1
2
3
4
5
6
7
void Char(char type[10]){
char c,*vc=&c;
cout<<setw(8); cin>>c;
cout<<type
<<setw(8)<<c
<<setw(11)<<hex<<c
<<setw(20)<<setprecision(3)<<vc<<endl;}
Не работает hex,символ выводит в том же формате, адрес показывает непонятными символами вообще.
Помогите пожалуйста написать верно.
Миниатюры
Вывод адреса по указателю на char в std::cout  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
30.11.2013, 10:49     Вывод адреса по указателю на char в std::cout #2
Цитата Сообщение от mogtar Посмотреть сообщение
setw(11)<<hex<<c
сделай сперва приведение к инту здесь
<<setw(11)<<hex<<(int)c
mogtar
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 51
30.11.2013, 10:55  [ТС]     Вывод адреса по указателю на char в std::cout #3
Цитата Сообщение от newbie666 Посмотреть сообщение
сделай сперва приведение к инту здесь
<<setw(11)<<hex<<(int)c
Спасибо, а не знаете что с адресом? я заметил такое только для char выбивает
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
30.11.2013, 11:01     Вывод адреса по указателю на char в std::cout #4
Цитата Сообщение от mogtar Посмотреть сообщение
Спасибо, а не знаете что с адресом? я заметил такое только для char выбивает
char переопределен для вывода символов поэтому он и адрес выдает как символы
нужно явно приводить к int
поэтому, мне лично, проще использовать printf
C++
1
printf("%c %d %x %x",c,c,c,&c);
По моему гораздо удобнее
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 13:42     Вывод адреса по указателю на char в std::cout #5
Цитата Сообщение от mogtar Посмотреть сообщение
а не знаете что с адресом? я заметил такое только для char выбивает
Чтобы увидеть, через cout <<, адрес, который содержится в указателе на char, нужно привести указатель к указателю на void.
C++
1
(void*)vc
Yandex
Объявления
30.11.2013, 13:42     Вывод адреса по указателю на char в std::cout
Ответ Создать тему
Опции темы

Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru