Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Вопрос по Visual C++, нужна помощь

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Вопрос по Visual C++, нужна помощь
Имя
Сообщение << Старые топики   Новые топики >>
Вопрос по Visual C++, нужна помощь - 2008-07-28 19:41:10.216666   
Zer000

Сообщений: 2
Оценки: 0
Присоединился: 2007-09-02 22:57:37.143333
Пишу программку на Visual C++, и никак не получается вывести HEX число  в нужном мне виде.

Вот кусок кода:
private: System::Void button1_Click(System::Object^&nbsp; sender, System::EventArgs^&nbsp; e) { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; char buffer[10]; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sprintf(buffer,"0x%X",line_1); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textBox1-&gt;Text = gcnew String(buffer); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}
в переменную line_1 у меня попадает целое десятичное число…
например если десятичное число равняется нулю то в HEX в текстбоксе отображается 0x0.
а если например десятичное число 31 то HEX отображается нормально 0x1F

Вопрос в том как сделать чтобы вместо 0x0 выводилось 0x00
Post #: 1
RE: Вопрос по Visual C++, нужна помощь - 2008-07-28 20:55:36.560000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Написать свою функцию для преобразования числа в нужный формат. sprintf не знает, чего ты от неё хочешь и сколько нулей нужно дописывать, если число - 0.
Post #: 2
RE: Вопрос по Visual C++, нужна помощь - 2008-07-28 20:57:34.403333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ну или как самый тупой вариант - sprintf( "0x%s%X", val == 0 ? "0" : "", val );
Post #: 3
RE: Вопрос по Visual C++, нужна помощь - 2008-07-30 20:36:43.486666   
dcoder

Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
Code:
&nbsp;&nbsp;&nbsp; printf("0x%0.2X \n",0); &nbsp;&nbsp; &nbsp;printf("0x%0.2X \n",1); &nbsp;&nbsp; &nbsp;printf("0x%0.2X \n",31);
Output:
0x00 0x01 0x1F
Это ожидаемый результат?
Post #: 4
RE: Вопрос по Visual C++, нужна помощь - 2008-07-30 23:30:19.596666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Хоть в исходной задаче и был HEX, но вот с float такие выкрутасы не прокатят.
Post #: 5
RE: Вопрос по Visual C++, нужна помощь - 2008-07-31 12:24:19.310000   
Absurd

Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666
quote:

ORIGINAL: _SaZ_

Хоть в исходной задаче и был HEX, но вот с float такие выкрутасы не прокатят.

Под float форматные спецификаторы тоже вроде бы есть.
Post #: 6
RE: Вопрос по Visual C++, нужна помощь - 2008-07-31 12:49:51.356666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Они не совсем корректро работают. Т.е. вместо желаемого 00.12345 будет выведено 0.12345
Post #: 7
RE: Вопрос по Visual C++, нужна помощь - 2008-08-29 19:13:20.383333   
neji_daf

Сообщений: 28
Оценки: 0
Присоединился: 2008-07-30 22:57:12.800000
Извените еслии оффтоп, поис не хочет давать результатов, пришлось написать здесь
Подскажите пожалуйста компилятор С++ под висту, если есть возможность дайте ссылку от куда качнуть.
Post #: 8
RE: Вопрос по Visual C++, нужна помощь - 2008-08-29 20:16:49.736666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А ты где искал? И как? Поделись опытом….

http://www.google.com/search?q=Microsoft+C+compiler или
http://www.google.com/search?q=Microsoft+C%2B%2B+compiler
Post #: 9
RE: Вопрос по Visual C++, нужна помощь - 2008-09-04 20:38:05.780000   
dcoder

Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
> Хоть в исходной задаче и был HEX, но вот с float такие выкрутасы не прокатят.
Как в задаче просили, так и написал. правда лучше чем
> Ну или как самый тупой вариант - sprintf( "0x%s%X", val == 0 ? "0" : "", val );
?

> Они не совсем корректро работают. Т.е. вместо желаемого 00.12345 будет выведено 0.12345
От чего это зависит? Опиши подробнее суть проблемы.
Иногда работает, иногда не работает - это не конструктивная информация.
Может быть та же проблема что и у автора?
Post #: 10
RE: Вопрос по Visual C++, нужна помощь - 2008-09-19 18:19:29.813333   
GSG9

Сообщений: 26
Оценки: 0
Присоединился: 2008-09-19 15:12:27.870000
КАКИЕ ДОЛЖНЫ БЫТЬ МОЗГИ ЧТОБЫ это знать????
МОЛОДЦЫ ПАЦАНЫ!
ВЫ ТУТ C++ ЗНАЕТЕ,А Я ТОЛЬКО ГАЛИМЫЙ HTML.
Post #: 11
RE: Вопрос по Visual C++, нужна помощь - 2008-09-20 15:59:26.233333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Флаг тебе в руки с твоим HTML… ^^

Учи с++
Post #: 12
RE: Вопрос по Visual C++, нужна помощь - 2008-09-22 21:42:21.206666   
dcoder

Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
У каждого языка своё назначение, и для html есть своё место в этом мире.
Лан, не будем флеймить
Post #: 13
RE: Вопрос по Visual C++, нужна помощь - 2008-09-22 22:43:51.590000   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333

quote:

ORIGINAL: GSG9

КАКИЕ ДОЛЖНЫ БЫТЬ МОЗГИ ЧТОБЫ это знать????
МОЛОДЦЫ ПАЦАНЫ!
ВЫ ТУТ C++ ЗНАЕТЕ,А Я ТОЛЬКО ГАЛИМЫЙ HTML.


Ну и дура ©
Post #: 14
RE: Вопрос по Visual C++, нужна помощь - 2008-09-23 00:38:23.336666   
keys

Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
#include &lt;stdio.h&gt; #define MAXLINE 100 main() { char line[MAXLINE]; int num; num = 31; sprintf(line, "0x%02X", num); printf("%s\n", line); num = 0; sprintf(line, "0x%02X", num); printf("%s\n", line); // 0x ставится вместо %#X из за того что цифры нужны большие а 0x маленький // иначе можно было б сделать %#02X return 0; }
Post #: 15
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 16:21:51.706666   
dcoder

Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
О_о
Это решение было уже выложено выше, только без лишнего копирования через sprintf.
А проблему, описанную _SaZ_, оно не решает


Post #: 16
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 19:16:29.053333   
keys

Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
я делал как у топикстартера есть sscanf значит надо
#include &lt;stdio.h&gt; #define fcount(a) (((a) &gt; 0 && (a) &lt; 1) || ((a) &lt; 0 && (a) &gt; (-1))) ? 8 : 0; main() { int fld; double n; n = 0.12345; fld = fcount(n); printf("%0*g\n", fld, n); n = 1.12345; fld = fcount(n); printf("%0*g\n", fld, n); return 0; } пример реализации по запросу _SaZ_ (специфично)
Post #: 17
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 19:25:03.246666   
keys

Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
это для 00.00
printf("%05.2f\n", 0.0);
Post #: 18
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 19:46:25.800000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Хм, имхо у меня читабельнее ^^
Post #: 19
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 20:08:29.013333   
keys

Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
#include &lt;stdio.h&gt; #define fcount(a) (((a) &gt; 0 && (a) &lt; 1) ? 8 : ((a) &lt; 0 && (a) &gt; (-1)) ? 9 : 0) main() { int fld; double n; n = -0.12345; fld = fcount(n); printf("%0*g\n", fld, n); n = -1.12345; fld = fcount(n); printf("%0*g\n", fld, n); return 0; } я переделал макрос для отрицательных (для нуля не стал делать)
Post #: 20
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Вопрос по Visual C++, нужна помощь







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.