当我遇到这个奇怪的错误时,我正在处理 C++ 的输出格式。这是我用于打印数组中包含的信息的代码示例:
int store;
while(table[i]!=NULL)
{
store=table[i]->ReturnID();
output<<"ID: "<<setw(9)<<store<<"\t"; // Export to a file channel
store=table[i]->ReturnTotalNumber();
output<<" Total Number: "<<setw(5)<<store<<endl;
i++;
}
尽管代码可以按预期编译和工作,但这是我的 output.txt 文件的一部分:
ID: 243 Total Number: 0
ID: 312 Total Number: 0
ID: 458 Total Number: 0
ID: 700 Total Number: 0
ID: 738 Total Number: 0
.....
txt 文件的第二行似乎总是不平衡。其余的不管多少都可以。我还注意到将第一个setw(9)从 9 更改为任何其他随机数可以修复该错误,但我无法解释。有人对此有任何解释吗?我的编译器是 GCC-G++ 版本 4.4.1,我的 IDE 是 Code::Blocks 10.05。