Печать целых чисел с фиксированным числом нулей в C ++ - PullRequest
0 голосов
/ 22 октября 2019

Вопрос прост. Я испортил std :: fixed , std :: setprecicion , std :: setw , но ни один из них не решает мою проблему.

Если у меня целочисленная переменная, равная 1, я хочу, чтобы она была напечатана как: 1000

Спасибо.

Ответы [ 3 ]

1 голос
/ 22 октября 2019

Вопрос не очень ясен о том, чего вы пытаетесь достичь.

Если вы хотите напечатать значение вашей переменной с добавленными к ней 3 нулями, вам просто нужно напечатать переменную, а затем 3 нуля. .

cout << x << "000" << endl;

Если вам нужно выполнить какие-либо вычисления с ним, вы всегда можете просто умножить его на 1000.

int y = x * 1000;
cout << y << endl;

Имейте в виду, что это может вызвать переполнение,хотя ...

1 голос
/ 22 октября 2019

Вы можете использовать std::left вместе с std::setw и std::setfill, чтобы добавить количество определенных символов заполнения справа. Пример с std::cout:

#include <iostream>
#include <iomanip>
#include <ios>

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

Я считаю, что он должен делать эту работу.

1 голос
/ 22 октября 2019

Я думаю, вы хотите, чтобы оно печаталось как 0001, а не как 1000.

Посмотрите на printf / sprintf со строкой формата. Например:

#include <iostream>

int main(int argc, char **argv) {
    int i = 1;

    printf("%04d\n", i);
}
...