在这段代码中,我希望在固定文本之前从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;
}
答案 0 :(得分:10)
setfill
和setw
manipulators仅适用于 next 输出操作。因此,在您的情况下,您可以将其设置为TEXT
的输出。
相反,例如。
oFile << TEXT << std::setfill('0') << std::setw(3) << i << endl;