fwrite函数与fread 我每次用fwrite写数据 再fread读数据 但输出数据后面都会跟乱码,是怎么回事

2024-10-30 09:29:13
有4个网友回答
网友(1):

大哥,你的buffer没有预先清空重置就会这样的,
你试试这样定义
char in_read[256]="\0", out_write[256]="\0";
或者每次读数据的之前手动把你的buffer清空为全0x0然后再fread读入数据,这样:
memset(in_read,256,0x0);
同样,每次需要设置写入的数据之前先把写入的buffer清空一下。然后再拷贝写入的数据

memset(out_write,256,0x0);
memcpy(out_write, my_write_data, 256);

我保证你再输出不会有乱码了,望采纳。

网友(2):

fwrite后,需将文件关掉重开,或者用fseek 重新定位到文件头,不然,默认是重fwrite后面读取数据

网友(3):

文件第一次打开时候,读写指针会在起始位置,你这里写入后读写指针已经变了,可是你在读的时候并没有把文件读写指针移到起始位置。

网友(4):

这个我也碰到过,可能是因为你打开的时候没有用二进制打开,
fp=fopen("filename", "rb");
还有可能是因为写的字节数的原因