|  | 
沙发
 
 
 楼主|
发表于 2009-7-8 05:45:58
|
只看该作者 
| 一个完整的读取程序,读取完,并输出: 
 说明:#include <stdio.h>#include <errno.h>
 #include <stdlib.h>
 
 int main()
 {
 fpos_t position;
 FILE *stream;
 
 char mingyan[1000];
 char *p = mingyan;
 stream = fopen("my.txt", "r");
 if (stream == NULL){
 perror("errno");
 exit(1);
 }
 
 while ( fread(p, 3, 1, stream) != 0 ) {
 
 while (*p != '\\n') {
 p += 3;
 fread(p, 3, 1, stream);
 }
 
 p++;
 *p = '\\0';
 printf("%s", mingyan);
 p = mingyan;
 fseek(stream, -2, SEEK_CUR);
 }
 
 fclose(stream);
 return 0;
 }
此段程序读取的是 UTF-8 编码的中文,所以一次读入 3 个字节。因为遇到换行符 '\\n' 时,此符号只占用一个字节,所以要进行文件指针的移动:
 fseek(stream, -2, SEEK_CUR);
 | 
 |