Вопрос по Visual C++, нужна помощь
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Вопрос по 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^ sender, System::EventArgs^ e) {
char buffer[10];
sprintf(buffer,"0x%X",line_1);
textBox1->Text = gcnew String(buffer);
}
в переменную line_1 у меня попадает целое десятичное число… например если десятичное число равняется нулю то в HEX в текстбоксе отображается 0x0. а если например десятичное число 31 то HEX отображается нормально 0x1F Вопрос в том как сделать чтобы вместо 0x0 выводилось 0x00
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-07-28 20:55:36.560000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Написать свою функцию для преобразования числа в нужный формат. sprintf не знает, чего ты от неё хочешь и сколько нулей нужно дописывать, если число - 0.
|
|
|
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 );
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-07-30 20:36:43.486666
|
|
|
dcoder
Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
|
Code:
printf("0x%0.2X \n",0);
printf("0x%0.2X \n",1);
printf("0x%0.2X \n",31);
Output:
0x00
0x01
0x1F
Это ожидаемый результат?
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-07-30 23:30:19.596666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Хоть в исходной задаче и был HEX, но вот с float такие выкрутасы не прокатят.
|
|
|
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 форматные спецификаторы тоже вроде бы есть.
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-07-31 12:49:51.356666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Они не совсем корректро работают. Т.е. вместо желаемого 00.12345 будет выведено 0.12345
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-08-29 19:13:20.383333
|
|
|
neji_daf
Сообщений: 28
Оценки: 0
Присоединился: 2008-07-30 22:57:12.800000
|
Извените еслии оффтоп, поис не хочет давать результатов, пришлось написать здесь Подскажите пожалуйста компилятор С++ под висту, если есть возможность дайте ссылку от куда качнуть.
|
|
|
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
|
|
|
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 От чего это зависит? Опиши подробнее суть проблемы. Иногда работает, иногда не работает - это не конструктивная информация. Может быть та же проблема что и у автора?
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-19 18:19:29.813333
|
|
|
GSG9
Сообщений: 26
Оценки: 0
Присоединился: 2008-09-19 15:12:27.870000
|
КАКИЕ ДОЛЖНЫ БЫТЬ МОЗГИ ЧТОБЫ это знать???? МОЛОДЦЫ ПАЦАНЫ! ВЫ ТУТ C++ ЗНАЕТЕ,А Я ТОЛЬКО ГАЛИМЫЙ HTML.
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-20 15:59:26.233333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Флаг тебе в руки с твоим HTML… ^^ Учи с++
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-22 21:42:21.206666
|
|
|
dcoder
Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
|
У каждого языка своё назначение, и для html есть своё место в этом мире. Лан, не будем флеймить
|
|
|
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. Ну и дура ©
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-23 00:38:23.336666
|
|
|
keys
Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
|
#include <stdio.h>
#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;
}
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 16:21:51.706666
|
|
|
dcoder
Сообщений: 121
Оценки: 0
Присоединился: 2006-10-24 21:25:54.240000
|
О_о Это решение было уже выложено выше, только без лишнего копирования через sprintf. А проблему, описанную _SaZ_, оно не решает
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 19:16:29.053333
|
|
|
keys
Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
|
я делал как у топикстартера есть sscanf значит надо
#include <stdio.h>
#define fcount(a) (((a) > 0 && (a) < 1) || ((a) < 0 && (a) > (-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_ (специфично)
|
|
|
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);
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 19:46:25.800000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Хм, имхо у меня читабельнее ^^
|
|
|
RE: Вопрос по Visual C++, нужна помощь - 2008-09-24 20:08:29.013333
|
|
|
keys
Сообщений: 137
Оценки: 0
Присоединился: 2008-08-06 08:48:50.340000
|
#include <stdio.h>
#define fcount(a) (((a) > 0 && (a) < 1) ? 8 : ((a) < 0 && (a) > (-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;
}
я переделал макрос для отрицательных (для нуля не стал делать)
|
|
|
|
|