Russian Qt Forum
Июля 07, 2025, 20:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перевод числа в строку по формату.  (Прочитано 8888 раз)
andi
Гость
« : Января 16, 2007, 08:13 »

Есть десятичное число.
Нужно его вывести в строку в HEX виде. Причем так чтобы впереди присутствовали столько нулей сколько мне надо.
Например число 36. Строка "0024" или "0x0024".
При этом sprintf() использовать нежелательно.
Хочется сразу получить юникод без дополнительных преобразований.
Ничего подходящего среди .arg() не нашел.
Записан
Вячеслав
Гость
« Ответ #1 : Января 16, 2007, 09:16 »

А собственно почему мимо sprintf ? и смысл велосипед на 6 колес изобретать ?
Записан
nova
Гость
« Ответ #2 : Января 16, 2007, 10:20 »

Как не нашел?
Попробуй так Улыбающийся
QString a("0x%1").arg(36,4,16,'0');
Записан
andi
Гость
« Ответ #3 : Января 16, 2007, 10:23 »

Очень странное расположение функционала по функциям.
Смысл тогда было делать sprintf только для заполнения пустых полей нулями?
Остальное вроде в arg() есть. Или у arg есть ограничение на количество аргументов?

Меня как раз и настораживают такие костыли ввиде 2-х почти одинаковых функций.
Я так понял преимущество arg только в том, что можно в форматной строке менять порядок аргументов.
Вобщем логику я не просматриваю в применении этих функций.
Буду использовать, что есть. Но если кто поможет разобраться зачем 2 такие похожие функции, буду благодарен.
Записан
Kosh
Гость
« Ответ #4 : Января 16, 2007, 10:28 »

У QString есть свой sprintf. работает, как и обычный, только за типами переменных нужно следить. Например,если переменную типа double выводить по формату "%d" фигня полная получается.
Записан
nova
Гость
« Ответ #5 : Января 16, 2007, 10:30 »

По поводу sprintf() вдоке написано:
Warning: We do not recommend using QString::sprintf() in new Qt code. Instead, consider using QTextStream or arg(), both of which support Unicode strings seamlessly and are type-safe.
Записан
Tonal
Гость
« Ответ #6 : Января 16, 2007, 11:09 »

Я для сложного форматирования Boost.Format использую. ;-)
Записан
andi
Гость
« Ответ #7 : Января 16, 2007, 12:33 »

Забыл добавить. Использую qt 3.3.6
Записан
Вудруф
Гость
« Ответ #8 : Января 16, 2007, 12:41 »

std::ostringstream
И настройка для стандартных потоков.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.022 секунд. Запросов: 17.