在C/C++代码编写过程中,会遇到结果数据验证,数据保存的问题。
对于几个数据的验证,直接打印就可以验证,如果输出数据成百上千个,就难以通过打印这种方式进行验证,只能保存为数据文件,再行分析。
在C语言中,fwrite是对数据写入的函数,需要结合fopen函数来一起使用。二者结合起来,可以设置多种模式对文件进行读写:
fopen函数的读写方式为:
文件指针名 = fopen(文件名, 读写模式)
其中,读写模式有以下几种:r(读),w(写),b(二进制),+(读写),a(追加数据)
r: 文本读
rb: 读取二进制数据文件
w: 文本写入,只写
wb: 二进制写入,只写
wb: 二进制写入或读出
a: 追加写入数据,文本形式
ab: 追加写入数据,二进制形式
追加数据的两个方法:
(1)在w写模式下:第一次fopen文件时,会把文件清空,再写入新的数据,只要不关闭该文件,就一直可以向该文件追加写入数据,而且数据连续存储。
FILE *fp;
fp = fopen("data.dat", "wb");
fwrite(a, sizeof(float), 5, fp); // 写入数组a
fwrite(b, sizeof(float), 5, fp); // 追加数组b
fclose(fp);
(2)使用a追加模式,fopen打开文件时会保留原始文件内容,并追加到末尾写入数据。
FILE *fp;
fp = fopen("data.dat", "wb");
fwrite(a, sizeof(float), 5, fp); // 写入数组a
fclose(fp);
FILE *fpa;
fpa = fopen("data.dat", "ab");
fwrite(b, sizeof(float), 5, fpa); // 追加数组b
fclose(fpa);