justwant 发表于 2008-6-20 18:47

往文件中写数据的问题?

fwrite往txt文件中只能写char类型的,写int的就会乱码;
fprintf和vfprintf可以写int的数据,但是一次只能写一个,不能写一串,例如要写一个int的数组。也许是我不会[tk43]
请问有谁知道怎么做吗

flyue 发表于 2008-6-20 18:53

当然,fwrite是以二进制的方式把int数据写进文件中。如果你想以ASCII码的形式写入,可以用fprintf函数。

int a = 1220;
fprintf(fp, "%d  %d  %d  %d  %d  %d", a, a, a, a, a, a);
这样就写了6个数据了,怎么只能写1个???

forever74 发表于 2008-6-20 18:53

二进制数据文件本身看起来就像乱码,太正常了。
文件是给程序读的,那么fwrite写的只要能够用fread读回来就可以了,别在乎它看起来什么样。
要是文件是给眼睛看的,那就自己写一个函数循环调用fprintf什么的好了。

flyue 发表于 2008-6-20 18:54

写int数组可以这样:
for(int i = 0; i < 10; i++)
  fprintf(fp, "%d  ", array[i]);

fp为文件指针,array为数组

StarWing83 发表于 2008-6-20 19:11

赞3#的……

justwant 发表于 2008-6-20 19:42

[tk41] 受教了

himpo 发表于 2008-6-21 08:56

回复 3# forever74 的帖子

好像在不用看文件的情况下,直接用fread和fwrite,
可以省却代码之间的转换


是这样子么?

StarWing83 发表于 2008-6-21 09:53

恩,就是这样。
建议弄个结构体,然后一起给fwrite了……

页: [1]

编程论坛