[英]fstream and setw not aligning output properly
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;
}
请记住,当使用setw
,该函数用于声明即将出现的区域。 因此,您可以通过计算字符并将其用作值(通常为+1或2)来声明静态值,例如"Person's Name:"
类的信息中的文本。 以该示例为例,该值将设置为setw(16)
以说明每个字符+ 2个空格。 然后,您应用另一个setw
值声明要出现的字段,选择一个足够大的值来容纳您的数据。 请记住left
对齐,以便您可以看到它如何影响输出。 在您的示例中,您正在对齐,尽管在某些示例中这可能会提供格式化的输出,但在其他示例中却中断了,如您所见。
如果要在每个数据集之间留出更多空间,则可以像本例中那样简单地增加字段的宽度。 这样,所有内容都保持对齐,您无需使用制表符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.