为什么文件追加写不进去嘞
#include <stdio.h>#include <stdlib.h>
#include <math.h>
#define W 128 //每次读写文件的数据量
int FileSet=0; //定义一个整型变量, 用于保存fseek函数的返回值
int FileEnd=0; //整个文件的字节数
int FileLength=0; //文件的数据长度
short InputData[W]; //文件读写数据缓冲区
main()
{
FILE *Ifp,*Ofp; //定义文件读写指针
Ifp = fopen("f:\\exam.wav","rb");
Ofp = fopen("f:\\ProcessedFile.wav","ab");
FileSet=fseek(Ifp,0L,SEEK_SET); /*将指针移到文件开始处*/
fseek(Ifp,0L,SEEK_END); /*将指针移到文件尾*/
FileEnd=ftell(Ifp); /*获取exam.wav文件的字节数*/
FileLength=FileEnd/2; /*文件的数据长度*/
rewind(Ifp); /*将指针重新指到exam.wav文件开头*/
while(FileLength>=W) /*文件剩余的数据长度不小于W时,继续循环处理*/
{
fread(InputData,sizeof(short),W,Ifp); /*从exam.wav文件中读取W个short(16比特)数据,保存到InputData数组*/
fwrite(InputData,sizeof(short),W,Ofp); /*将InputData数组中的W个short数据写入到ProcessedFile.wav文件中*/
FileLength-=W; //刷新剩余的文件长度
}
fread(InputData,sizeof(short),FileLength,Ifp); /*从exam.wav文件中读取剩余的数据,保存到InputData数组*/
fwrite(InputData,sizeof(short),FileLength,Ofp); /*将InputData数组中的数据写入到ProcessedFile.wav文件中*/
fclose(Ifp); /*关闭读文件*/
fclose(Ofp); /*关闭写文件*/
}