如何解决对于许多通过恐惧阅读的字符
我正在尝试以二进制模式打开文件并将内容写入C ++中的缓冲区。
我为此使用fread
。但是出了点问题。
我的代码是:
FILE * in = fopen("in","rb");
_in = new unsigned char [length_in];
fread(_in,sizeof(char),length_in,in);
调试时,我可以看到_in = unsigned char * "Asdfghjkl\x1f \x10"
。
重建程序时,\x1f \x10
部分会随机变化或消失。
我一直期望的是_in = unsigned char * "Asdfghjkl"
。
将length_in
替换为9
时,我仍然得到类似"Asdfghjkl\x1f \x10"
的信息。
我想念的是什么。我正在使用Mac和Xcode。
解决方法
您的数组是未初始化创建的,因此它们是来自内存中任何内容的垃圾值。像这样将其初始化为零:
_in = new unsigned char [length_in]();
也fread
返回读取的字节数。如果您将其当作字符串来对待,请确保结果以空值结尾。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。