往文件中写数据的问题?
fwrite往txt文件中只能写char类型的,写int的就会乱码;fprintf和vfprintf可以写int的数据,但是一次只能写一个,不能写一串,例如要写一个int的数组。也许是我不会
请问有谁知道怎么做吗
----------------解决方案--------------------------------------------------------
当然,fwrite是以二进制的方式把int数据写进文件中。如果你想以ASCII码的形式写入,可以用fprintf函数。
如
int a = 1220;
fprintf(fp, "%d %d %d %d %d %d", a, a, a, a, a, a);
这样就写了6个数据了,怎么只能写1个???
----------------解决方案--------------------------------------------------------
二进制数据文件本身看起来就像乱码,太正常了。
文件是给程序读的,那么fwrite写的只要能够用fread读回来就可以了,别在乎它看起来什么样。
要是文件是给眼睛看的,那就自己写一个函数循环调用fprintf什么的好了。
----------------解决方案--------------------------------------------------------
写int数组可以这样:
for(int i = 0; i < 10; i++)
fprintf(fp, "%d ", array[i]);
fp为文件指针,array为数组
----------------解决方案--------------------------------------------------------
赞3#的……
----------------解决方案--------------------------------------------------------
受教了
----------------解决方案--------------------------------------------------------
回复 3# forever74 的帖子
好像在不用看文件的情况下,直接用fread和fwrite,可以省却代码之间的转换
是这样子么?
----------------解决方案--------------------------------------------------------
恩,就是这样。
建议弄个结构体,然后一起给fwrite了……
----------------解决方案--------------------------------------------------------