文件操作的问题.请高手指点!
#include <stdlib.h>
#include <stdio.h>
int main()
{
FILE *iFile,*oFile;
short data[240];
if ( (iFile=fopen( "dbh.wav ", "rb ")) == NULL)
{
printf( "\nerror on open dbh.wav! ");
exit(2);
}
if ( (oFile=fopen( "mine.wav ", "wb ")) == NULL)
{
printf( "\nerror on open mine.wav! ");
exit(2);
}
while (fread(data,sizeof(short),240,iFile)==240)
{
fwrite(data, sizeof(short), 240, oFile);
}
fclose(iFile);
fclose(oFile);
getchar();
return 0;
}
能不能解释一下while循环部分是怎么运行的? 如果按现在这个写法,我认为mine.wav将比dbh.wav缺少一部分数据? 可是实际上是不缺少的.为什么呢?
[解决办法]
int n;
while ((n=fread(data,sizeof(short),240,iFile))> 0)
{
fwrite(data, sizeof(short), n, oFile);
}