C ++ форматирование вывода с использованием setw и setfill

В этом коде я хочу, чтобы числа печатались в специальном формате, начиная с 0 до 1000, предшествующего фиксированному тексту, например так:

Тест 001
Тест 002
Тест 003

Тест 999

Но я не люблю отображать это как

Тест 1
Тест 2

Тест 10

Тест 999

Что плохого в следующей программе на C ++, которая не может выполнить вышеупомянутую работу?

#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
using  namespace std;

const string TEXT = "Test: ";

int main()
{

const int MAX = 1000;
ofstream oFile;

oFile.open("output.txt");for (int i = 0; i < MAX; i++) {
oFile << std::setfill('0')<< std::setw(3) ;
oFile << TEXT << i << endl;
}return 0;
}

3

Решение

setfill а также setw манипуляторы для следующий только выходная операция. Таким образом, в вашем случае вы установите его для вывода TEXT,

Вместо этого, например,

oFile << TEXT << std::setfill('0') << std::setw(3) << i << endl;
9

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]