Chinaunix首页 | 论坛 | 博客
  • 博客访问: 573864
  • 博文数量: 493
  • 博客积分: 2891
  • 博客等级: 少校
  • 技术积分: 4960
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 17:11
文章分类

全部博文(493)

文章存档

2010年(493)

分类:

2010-05-12 18:46:50

3 结论:解决方案及效果
代码中对fread与fwrite的调用应该改成如下:
fread(&buffer, 1, FILE_BUFFER_SIZE, fsrc)
fwrite(&buffer + ulBufWrite, 1, ulBufRead, fdst)
4 经验总结:预防措施和规范建议
使用库函数前,应读一下使用说明。
比较通用的函数可以从其他产品移植比较保险,自己写往往容易出错。
5 备注
6 考核点
fread fwrite的使用
7 试题
对下列程序输出分析正确的是:D
bool test1()
{
char buffer[8];
unsigned long ulBufRead, ulBufWrite;
FILE * fsrc = ::fopen("a.txt", "rb"); //打开原始文件
    if (NULL == fsrc)
    {
        return false;
    }
    FILE * fdst = ::fopen("b1.txt", "wb"); //打开目标文件
    if (NULL == fdst)
    {
        ::fclose(fsrc);
        return false;
}
    if ((ulBufRead = ::fread(&buffer, 8, 1, fsrc)) != 0)
    {
if (0 == (ulBufWrite = ::fwrite(&buffer, 1, ulBufRead, fdst)))
        {
             ::fclose(fsrc);
             ::fclose(fdst);
             return false;
        }
}
    ::fclose(fsrc);
    ::fclose(fdst);
    return true;
}
bool test2()
{
char buffer[8];
unsigned long ulBufRead, ulBufWrite;
FILE * fsrc = ::fopen("a.txt", "rb"); //打开原始文件
    if (NULL == fsrc)
    {
        return false;
    }
    FILE * fdst = ::fopen("b2.txt", "wb"); //打开目标文件
    if (NULL == fdst)
    {
        ::fclose(fsrc);
        return false;
}
    if ((ulBufRead = ::fread(&buffer, 1, 8, fsrc)) != 0)
    {
if (0 == (ulBufWrite = ::fwrite(&buffer, 1, ulBufRead, fdst)))
        {
             ::fclose(fsrc);
             ::fclose(fdst);
             return false;
        }
    }
    ::fclose(fsrc);
    ::fclose(fdst);
    return true;
}
A
如果a.txt的文件内容为"1234567812345678",则b1.txt与b2.txt的文件内容一致,均为"1"
B.
如果a.txt文件的内容为"1234567812345678"、b1.txt与b2.txt的文件内容一致,均为"12345678"
C.
如果a.txt的文件内容为"1234567812345678",则b1.txt与b2.txt的文件内容不一致,b1.txt为"12345678",b2.txt为"1"
D.
如果a.txt的文件内容为"1234567812345678",则b1.txt与b2.txt的文件内容不一致,b1.txt为"1",b2.txt为"12345678"
阅读(243) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~