1

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;
}
4

1 回答 1

2

请记住,使用时setw,该函数用于声明即将出现的区域。因此,您可以使用它来声明静态值,例如信息中的文本,例如"Person's Name:"通过计算字符并将其用作您的值(通常为 +1 或 2)。以此为例,该值将setw(16)考虑每个字符 + 2 个空格。然后你应用另一个setw值来声明即将到来的字段,选择一个足够大的值来容纳你的数据。请记住对齐left,以便您可以看到这如何影响您的输出。在您的示例中,您正确对齐,虽然在某些示例中这可能会提供格式化输出,但正如您所见,它在其他示例中会中断。


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

于 2015-10-01T06:41:44.940 回答