【发布时间】:2016-02-10 13:18:17
【问题描述】:
所以我使用iomanip 库来计算这个:
std::cout << std::endl
<< std::left << std::setw(15) << "Ticker Symbol"
<< std::setw(100) << "Stock Name"
<< std::setw(12) << "Value"
<< std::setw(10) << "Date"
<< std::setw(10) << "YTD Return"
<< std::endl;
问题是它最终打印了这个:
T icker SymbolS tock NameV alueD ateY TD Return
代替:
Ticker Symbol Stock Name Value Date YTD Return
有没有办法在不使用其他库的情况下解决这个问题?
编辑:我的运算符重载函数似乎导致了这个问题:
std::ostream& operator<< (std::ostream& out, const char array[])
{
for (uint8_t i = 0; array[i] != '\0'; i++)
{
out << array[i];
}
return out;
}
话虽如此,我仍然不知道如何解决这个问题。
【问题讨论】:
-
黑暗中的一枪:在写入之间刷新流有帮助吗?
-
将
std::cout.flush();放在该代码之前没有任何作用。 -
我无法在我的系统上重现它。你用的是什么编译器?你能提供一个最小的、可重现的测试用例吗?
-
这看起来像是编译器标准库中的错误。您使用的是哪个平台和编译器?
标签: c++ visual-studio-2013 text-alignment iomanip