setw
似乎并没有为我调整一些事情,我无法弄清楚为什么会这样。插入\t
会使事情向右移动,但我希望更严格地控制输出的格式。有什么想法吗?
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
string name = "Name LastName";
int age = 27;
double milesRun = 15.5;
ofstream outFile;
outFile.open("text.txt");
outFile << "Person's name: " << name << setw(12) << "Person's age: " << age << setw(12) << "Miles run: " << milesRun << endl;
outFile.close();
return 0;
}
答案 0 :(得分:2)
请记住,在使用setw
时,该函数用于声明 about 的区域。因此,您可以使用它来声明静态值,例如您的信息中的文本,例如"Person's Name:"
,通过计算字符并将其用作您的值(通常为+1或2)。以此为例,值为setw(16)
来计算每个字符+2个空格。然后,您应用另一个setw
值来声明要来的字段,选择一个足够大的值来容纳您的数据。请记住对齐left
,以便了解这会如何影响您的输出。在您的示例中,您正确对齐,虽然在某些示例中可能会给出格式化输出,但正如您所见,它会在其他示例中中断。
如果您希望每个数据集之间有更多空间,那么只需增加字段的宽度,如this示例中所示。这样一切都保持对齐,你不需要标签。