一道C语言题目,

一道C语言题目,在线等.....
使用标准C语言和标准C语言库,编写一个打印文件内容到屏幕的函数。(写出思路即可)
文件名:c:\example.txt,文件内容是中英文混排。
文件操作函数:
1.         打开文件
FILE   *fopen(const   char   *filename,const   char   *mode);
2.         读文件数据
size_t   fread(void   *buffer,   size_t   size,   size_t   count,FILE   *stream);
3.         关闭文件
int   fclose(FILE   *stream);
4.         打印
int   printf(const   char   *format[,argument]...);
编码格式:
1.         一个汉字占2个Byte,高字节在前,其中每个Byte的bit7为1;
2.         一个英文字符占1个Byte,其值小于0x80。
要求:
一次只能从文件中读取1024个Byte(不能多也不能少)。
请写出程序,然后,附带你准备怎么测试才能保证自己程序是强壮的。要注意各种特殊
情况的处理。


------解决方案--------------------
FILE *fp=fopen( "c:\example.txt ", "r ");
char buffer[1024];

while(!feof(fp))
{
fread(buffer, 1024, 1, fp);
...
}
------解决方案--------------------
事实上,
由于只是输出文件内容,
甚至可以不需要考虑是什么字符,
直接输出即可
【即是是半个汉字字符,后面半个也会在下一次操作中读取并输出,从而得到正确的结果】:

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp=fopen( "c:\\example.txt ", "rb ");
char buffer[1024];
int count;

count = fread(buffer, 1, 1024, fp);
while(count==1024)
{
printf( "%s ", buffer);
count = fread(buffer, 1, 1024, fp);
}
buffer[count]= '\0 ';
puts(buffer);
system( "PAUSE ");
return 0;
}
------解决方案--------------------
while(!feof(fp))
{
fread(buffer, 1024, 1, fp);
...
}
当文件以空行结束,最后可能会输出文件中的最后一个字符两次
应该用while(!feof(fp))
{
int size = fread(buffer, 1, 1024, fp);
buffer[size] = '\0 ';
printf( "%s ", buffer);
}
------解决方案--------------------
楼上说的不错 ,lz 这么用就行了
------解决方案--------------------
JF
------解决方案--------------------
up
------解决方案--------------------
jf
------解决方案--------------------
靠分全给虫子不甘心啊
mark一下