【发布时间】:2015-03-17 08:05:49
【问题描述】:
在编写程序时,我遇到了std::ofstream 的奇怪行为。请参考下面的代码
ofstream dire;
dire.open("dir.txt", std::ios::out);
// some other code
for(int i=0;i<dir.size();i++)
{
dire << dir[i] << "\t"; // dir is integer vector containing values between 0-9
}
现在当我打开dir.txt 内容是:
ऴऴऴऴवववववववववशशशशशशशशशशषषषषषषषषरररररररऱऱऱऱऱऱऱऱऱललललललललललललळ.. and so on
如果我给一个空格,然后 tab(\t) 那么它可以正常工作,或者 \n 也可以正常工作。 dire << dir[i] << " \t";
现在输出是:
4 4 4 4 5 5 5 5 5 5.. and so on
我还尝试dire.flush() 将输出缓冲区刷新到文件,但结果仍然相同。
我绝对可以使用\t 逃脱,但我想了解为什么会发生这种情况。
【问题讨论】:
-
用十六进制编辑器打开
dir.txt。你看到了什么?
标签: c++ file-io windows-8.1 ofstream