Форум программистов, компьютерный форум CyberForum.ru

Itoa не пишет нули в начале - C++

Восстановить пароль Регистрация
 
артист
 Аватар для артист
0 / 2 / 3
Регистрация: 17.09.2014
Сообщений: 567
Завершенные тесты: 1
23.06.2016, 13:54     Itoa не пишет нули в начале #1
Ни 16ные ни 2ные...
Догадывайся потом, что там...

Почему?
Можно как то исправить?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 13:54     Itoa не пишет нули в начале
Посмотрите здесь:

C++ дополнение к itoa()
C++ itoa
C++ itoa();
C++ Отсортировать массив таким образом, чтобы все нули находились в начале, а единицы — в конце массива
C++ Itoa И String
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4311 / 3732 / 1258
Регистрация: 14.04.2014
Сообщений: 14,619
23.06.2016, 13:58     Itoa не пишет нули в начале #2
Какие нули? Это не предусмотрено.
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,978
23.06.2016, 14:14     Itoa не пишет нули в начале #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от артист Посмотреть сообщение
Можно как то исправить?
Вариантов много
- Написать свою Itoa с нужным тебе поведением и дополнительным параметром - размер поля вывода
- Воспользоваться sprintf с форматом типа "%08x" или "%0*x" (для 16-ричных)
- Сдвинуть результат, полученный itoa на нужное количество позиций и заполнить освободившиеся байты нулями.
артист
 Аватар для артист
0 / 2 / 3
Регистрация: 17.09.2014
Сообщений: 567
Завершенные тесты: 1
23.06.2016, 14:59  [ТС]     Itoa не пишет нули в начале #4
Для двоичных получается - %08b

0 - Спецификатор заполнения(по умолчанию слева)
8 - Спецификатор минимальной ширины
b – целое число, представляемое в двоичном виде


Для шестнадцатеричных - %02X

Правильно?

Добавлено через 6 минут
Проверил, двоичные не выводит...
Выдаёт b всегда...

Добавлено через 5 минут
Ааа...

Посмотрел не там...

А в С нет вообще такого
%c - Символ
%d - Десятичное целое число со знаком
%i - Десятичное целое число со знаком
%e - Научный формат (строчная буква е)
%Е - Научный формат (прописная буква Е)
%f - Десятичное число с плавающей точкой
%g - В зависимости от того, какой формат короче, применяется либо %e, либо %f
%G - В зависимости от того, какой формат короче, применяется либо %E, либо %f
%o - Восьмеричное число без знака
%s - Строка символов
%u - Десятичное целое число без знака
%x - Шестнадцатеричное число без знака (строчные буквы)
%X - Шестнадцатеричное число без знака (прописные буквы)
%р - Указатель
%n - Указатель на целочисленную переменную. Спецификатор вызывает присвоение этой целочисленной переменной количества символов, выведенных перед ним
%% - Знак %
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,978
23.06.2016, 16:22     Itoa не пишет нули в начале #5
Цитата Сообщение от артист Посмотреть сообщение
А в С нет вообще такого
Ну чтож тут поделаешь!? Не мы язык придумывали... Но я в таких случаях просто пишу свою функцию... Поверь, это вовсе несложно...
Yandex
Объявления
23.06.2016, 16:22     Itoa не пишет нули в начале
Ответ Создать тему
Опции темы

Текущее время: 13:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru