Название: Перевод числа в строку по формату. Отправлено: andi от Январь 16, 2007, 08:13 Есть десятичное число.
Нужно его вывести в строку в HEX виде. Причем так чтобы впереди присутствовали столько нулей сколько мне надо. Например число 36. Строка "0024" или "0x0024". При этом sprintf() использовать нежелательно. Хочется сразу получить юникод без дополнительных преобразований. Ничего подходящего среди .arg() не нашел. Название: Перевод числа в строку по формату. Отправлено: Вячеслав от Январь 16, 2007, 09:16 А собственно почему мимо sprintf ? и смысл велосипед на 6 колес изобретать ?
Название: Перевод числа в строку по формату. Отправлено: nova от Январь 16, 2007, 10:20 Как не нашел?
Попробуй так :) QString a("0x%1").arg(36,4,16,'0'); Название: Перевод числа в строку по формату. Отправлено: andi от Январь 16, 2007, 10:23 Очень странное расположение функционала по функциям.
Смысл тогда было делать sprintf только для заполнения пустых полей нулями? Остальное вроде в arg() есть. Или у arg есть ограничение на количество аргументов? Меня как раз и настораживают такие костыли ввиде 2-х почти одинаковых функций. Я так понял преимущество arg только в том, что можно в форматной строке менять порядок аргументов. Вобщем логику я не просматриваю в применении этих функций. Буду использовать, что есть. Но если кто поможет разобраться зачем 2 такие похожие функции, буду благодарен. Название: Перевод числа в строку по формату. Отправлено: Kosh от Январь 16, 2007, 10:28 У QString есть свой sprintf. работает, как и обычный, только за типами переменных нужно следить. Например,если переменную типа double выводить по формату "%d" фигня полная получается.
Название: Перевод числа в строку по формату. Отправлено: nova от Январь 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 от Январь 16, 2007, 11:09 Я для сложного форматирования Boost.Format использую. ;-)
Название: Перевод числа в строку по формату. Отправлено: andi от Январь 16, 2007, 12:33 Забыл добавить. Использую qt 3.3.6
Название: Перевод числа в строку по формату. Отправлено: Вудруф от Январь 16, 2007, 12:41 std::ostringstream
И настройка для стандартных потоков. |