Я хочу перечислить все числа от 0000-9999, но у меня проблемы с удержанием нулевых мест.
Я пытался:
for(int i = 0; i <= 9999; ++i) { cout << i << "\n"; }
, но я получаю: 1,2,3, 4..ect Как я могу сделать это 0001,0002,0003 .... 0010 и т. Д.
См. setfill для указания символа заполнения и setw для указания минимальной ширины.
Ваш случай будет выглядеть так:
for(int i = 0; i <= 9999; ++i) { cout << setfill('0') << setw(4) << i << "\n"; }
Используйте ios_base::width() и ios::fill():
ios_base::width()
ios::fill()
cout.width(5); cout.fill('0'); cout << i << endl;
В качестве альтернативы используйте манипуляторы ввода-вывода:
#include<iomanip> // ... cout << setw(5) << setfill('0') << i << endl;
Вам просто нужно установить несколько флагов:
#include <iostream> #include <iomanip> using namespace std; int main() { cout << setfill('0'); for(int i = 999; i >= 0; --i) { cout << setw(4) << i << "\n"; } return 0; }
Хотя это и не обязательно, но если вы хотите узнать, как это сделать с C, вот пример:
for (int i = 0; i <= 9999; i++) printf("%04d\n", i);
Здесь «0» в «% 04d» работает как setfill('0')«4» работает как setw(4).
setfill('0')
setw(4)