Linux文件写操作,出现乱码
我现在向一个txt文件写入一些数据,出现乱码。求指导~~
代码:
- C/C++ code
#include <unistd.h>#include <stdio.h>#include <sys/mman.h>#include <fcntl.h>#include <stdlib.h>typedef struct{ int integer; char string[24];}RECORD;#define NRECORDS (100)int main(){ RECORD record,*mapped; int i,f; FILE *fp; fp = fopen("records.txt","w+"); for(i = 0;i < NRECORDS;++i) { record.integer = i; sprintf(record.string,"RECORD-%d",i); fwrite(&record,sizeof(record),1,fp); } fclose(fp);}
运行后打开records.tx出现乱码:
新手上路,求指教~~
[解决办法]
很正常, 计算机也不知道哪些字节是字符, 哪些字节不是字符, 你一个Int,后边接一个字符串, 显示成啥样都是可能的。
[解决办法]
用fprintf之类的函数试试
[解决办法]
sprintf(record.string,"RECORD-%d",i);
往string里写了多少字符?string长度是24哎...