int writeFile(FILE * handle, char * data, int len)
{
fseek(handle, 0, SEEK_SET);
for(int i=0; i <= len; i++)
putc(data[i], handle);
}
Run Code Online (Sandbox Code Playgroud)
当我调用这个函数时,它工作正常,但如果有一个0x1A字符char * data就会写出无数的0xFF.这是为什么?
Hex 0x1A也称为Control-Z.
在Windows上(好吧,DOS发起它),文本文件通过在文件中嵌入control-Z来指示EOF.
如果要编写二进制数据,请确保将输出文件作为二进制文件打开.如果您将其作为文本文件打开,则只输出文本(这意味着非常有限的控制字符;可能只是制表符和换行符,系统负责CRLF < - > LF映射).