读书人

文件操作的有关问题.请

发布时间: 2012-02-24 16:30:38 作者: rapoo

文件操作的问题.请高手指点!
#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);
}

读书人网 >C语言

热点推荐