Установите количество цифр для целого числа

Есть ли способ в C ++ заставить компилятор принимать определенное количество цифр, даже если их первые цифры равны нулю. Например:

У меня есть номер элемента 00001, и когда я импортирую номер из файла, он отображает 1. Я хочу, чтобы он импортировал все пять цифр и отображался как 00001.

У меня действительно нет кода для отображения, потому что я даже не знаю, какую функцию использовать для этого, и код, который у меня есть, работает так, как рекламируется, это просто не то, что я хочу. Я мог бы сделать число строкой, но я бы предпочел оставить его целым.


person Alex McCoy    schedule 26.03.2013    source источник


Ответы (3)


Используйте std::setfill и _ 2_ функции:

#include <iostream>
#include <iomanip>

int main()
{
    std::cout << std::setfill('0') << std::setw(5) << 1;
}

выходы:

00001

См. Связанные вопросы:
Как я могу дополнить int ведущими нулями при использовании оператора cout ‹
Печатать ведущие нули с помощью оператора вывода C ++ (эквивалент printf)?

person LihO    schedule 26.03.2013
comment
Полностью сработало спасибо! - person Alex McCoy; 26.03.2013

Такие вещи, как номера позиций, обычно используются в качестве идентификаторов; тот факт, что они выглядят как числа, отвлекает. Храните их как строки.

person Pete Becker    schedule 26.03.2013

В основном нет. Собственные типы данных не содержат никакой информации о форматировании. Вам нужно следить за форматированием самостоятельно. Вам нужно только форматирование, когда вам нужно вывести число.

Один из способов упростить задачу - создать класс для форматированных чисел, в котором вы комбинируете число с форматом.

person Klas Lindbäck    schedule 26.03.2013