C ++ IOS额外的字符

时间:2014-05-21 00:34:18

标签: c++

任何人都可以告诉我为什么以下(无可置疑的无用)代码导致包含ascii 64的文件?

#include <ostream>
#include <fstream>

int main()
{
   std::ofstream qFile("test");
   qFile << std::ios::left;
}

1 个答案:

答案 0 :(得分:5)

std::ios::left不是操纵符,它是具有特定值的格式标志(在我的实现中为32)。在GCC 4.8上我得到32作为输出,但你的实现必须在设置标志值的方式上有所不同。

您正在寻找的操纵者是std::left

std::ofstream qFile("test");
qFile << std::left;
qFile << std::setw(20);