Я уже смотрел это нить но он не учитывает использование отрицательных чисел, если я использую setfill (‘0’).
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//Code
int num1;
cin >> num1;
cout << setw(5) << setfill( '0' ) << num1 << endl;
return 0;
}
Используя этот метод, если я введу «5», он будет отображаться как «00005».
Но если я введу -5, он будет отображаться как «000-5»
Как я могу это исправить, чтобы выходной сигнал был «-0005»?
«Символ заполнения» используется для заполнения поля до указанной ширины. По умолчанию эти символы добавляются слева, так что вывод будет право выровнены. Ты можешь использовать std::left
за оставил выравнивание. Для номеров дополнительная опция std::internal
заполнит пространство между знаком и действительными цифрами:
cout << setw(5) << setfill('0') << internal << -42 << endl;
Других решений пока нет …