Russian Qt Forum
Ноябрь 24, 2024, 08:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перевод числа в строку по формату.  (Прочитано 8650 раз)
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.052 секунд. Запросов: 21.