C++ 如何在C++;?

C++ 如何在C++;?,c++,sql,database,formatting,C++,Sql,Database,Formatting,我正在做一项学校作业,其中我需要格式化一些虚拟数据的查询。特定查询收集两组表中的几个字段的数据,并将其打印到C++中的控制台。 虽然这可以按预期工作,但唯一的问题是格式化输出以使其正确显示。在分配文档中的示例输出中,这是正确的输出 <ID> <name> <email> <phone> <ext> <manager> 直到大约有几个条目被

我正在做一项学校作业,其中我需要格式化一些虚拟数据的查询。特定查询收集两组表中的几个字段的数据,并将其打印到C++中的控制台。

虽然这可以按预期工作,但唯一的问题是格式化输出以使其正确显示。在分配文档中的示例输出中,这是正确的输出

<ID>       <name>           <email>           <phone>         <ext>          <manager>
直到大约有几个条目被删除时,数据突然变得完全未格式化。

现在我很困惑,因为我认为我的格式是正确的,不知道为什么它会在这一点上陷入地狱,特别是因为在那之前的一切都基本上是完美的。我不知道如何正确格式化它,以便它可以返回到一个适当的表格输出

我用于此输出的代码是

cout << left << setw(10) << temp.empNum << "\t" << temp.firstName << " " << temp.lastName << "\t\t" << temp.email << "\t\t" << temp.phone << "\t\t" << temp.extension << "\t\t" << temp.reportsTo << endl;

看不出完美的例子。奇怪的是,我在使用cout.width做东西时没有任何运气。但我可能会尝试实现类似于示例代码的东西,因为它实际上与我的需要有着疯狂的关联。我建议你不要使用制表符,而是使用空格,因为制表符的大小根据控制台设置以及它们在打印线上的显示位置而变化。那么,你建议在cout语句中手动将内容隔开吗?或者只是摆弄setw直到有东西发出咔嗒声?在这一点上,我愿意尽一切努力让它正常工作。
cout << left << setw(10) << temp.empNum << "\t" << temp.firstName << " " << temp.lastName << "\t\t" << temp.email << "\t\t" << temp.phone << "\t\t" << temp.extension << "\t\t" << temp.reportsTo << endl;