2016-01-11 9 views
3

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

Test 001
Test 002
Тест 003
...
Test 999

Но я не хотел, чтобы отобразить его как

Тест 1
Тест 2
...
Тест 10
...
Test 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; 
} 
+0

Я думаю, вам нужно поставить 'setw' и' setfill' просто beofre 'i':' зЬй :: COUT << станд :: setfill ('0') << станд :: setw (3) << i. '. –

ответ

9

setfill и setwmanipulators для следующего вывода только операции . Поэтому в вашем случае вы установите его для вывода TEXT.

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

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