Fstream和setw没有正确对齐输出

fstream and setw not aligning output properly

本文关键字:对齐 输出 setw Fstream      更新时间:2023-10-16

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时,该函数用于声明关于的区域要显示。因此,您可以使用它来声明静态值,例如信息中的文本"Person's Name:",通过计算字符并使用它作为您的值(通常为+1或2)。使用它作为示例,值将是setw(16),以说明每个字符+ 2个空格。然后应用另一个setw值来声明将要出现的字段,选择一个足够大的值来容纳您的数据。记住对齐left,这样您就可以看到这对输出的影响。在您的示例中,您向右对齐,虽然在某些示例中可能会给出格式化的输出,但在其他示例中会中断,如您所见。


如果您希望每个数据集之间有更多的空间,那么只需像本例中那样增加字段的宽度。这样所有的东西都是左对齐的,你就不需要标签了。