【发布时间】:2013-04-29 17:50:03
【问题描述】:
我想将一系列 0 写入二进制文件。作为一个字符,这应该是一个空格,但是,当我写入我的文件时,我收到了许多其他奇怪的字符。我不是在写零,而是在写别的东西。
我这样做正确吗?
代码:
int zero = 0;
myfile.write(reinterpret_cast<char *>(&zero),1790*sizeof(char));
【问题讨论】:
-
你真的应该得到一本关于 C/C++ 的入门书并学习它。你有一个非常基本的问题。
-
首先,把你的故事讲清楚!你有大写字母 O,然后你说它是一个 char(即字符),然后它是一个空格(即 ASCII 32)。
-
这里有几处不对劲: 1. 你不应该需要 reinterpret_cast 来解决这个问题。 2.您没有正确调用
write()。 3. 您似乎不清楚 0、'O' 和空格字符之间的区别。 4. 你需要更多地了解指针。但你可以做到 - 只是学习一些(: -
head -c 1790 /dev/zero > myfile