原因就是出在返回值要能表示-1.unsigned char表示无符号的,而这返回值,需要是-1才可以表示文件读到末尾了,那可以char类型表示-1,但是-1在char类型中表示的值为0xff,然而它本身就是一个字节的内 容,如果文件中的一个字节是0xff,难道就认为文件结束,这是不合理的,用int作返回值,就不会出现这个问题,-1用int...
fopen打开二进制文件需使用参数“rb” "wb"fin=fopen("d:\\98.dat","rb");你是按文本方式打开的文件,读到“0x1a”, fgetc确实会返回-1。 这个原因我也没想明白。不过读二进制文件就按二进制方式打开文件,就不会出错。补充:关于读到0x1A的问题,我找到一些说法,好像并没有完美解决,只能...
fp=fopen("D:\\1.TXT","r");
由于文件的读写位置指针已经指向了文件结束标记EOF,所以函数的返回值为NULL,表示文件已经结束,文件的读写位置指针没有变化。文件读写位置指针如图12-7所示。 例12-5:显示文件内容并加上行号。 #include <stdio.h> main ( ) { FILE * fp; char file[20], str[10]; int flag=1, i=0; /* flag标志变量...
1. 功能 将字符c写入到fp流中 返回值 写入成功:返回写入文件的字符的ASCII码值 写入失败:返回EOF(-1) 当正确写入一个字符的数据后,文件内部写指针会自动后移一个字节的位置 int fgetc(FILE *stream); 1. 功能 从参数流中读取一个字符 返回值
函数fgetc()的功能是从fp所指的文件中读取一个字符,并将位置指针指向下一个字符。若读取成功,则返回该字符,若读到文件末尾或者读取出错,则返回EOF。EOF是一个符号常量,通常在stdio.h中定义为-1。 参考答案: 对点击查看答案 你可能感兴趣的试题 下面有关光驱的说法,哪一项是不正确的?()。 点击查看答案 单项...
(1)一般调用形式 ch=fgetc(fp); (2)作用 从指定的文件读入一个字符,即从fp所指向的文件中读入一个字符赋给ch。 (3)返回值 成功:返回值所得到的字符; 失败:返回EOF(-1)。 fputc函数(): (1)一般调用形式 fputc(ch,fp); (2)作用 把一个字符写到磁盘文件上去,即将字符ch输出到fp所指向的文件中去。
getc、fgetc用法相同。 getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。 本回答由提问者推荐 举报| 答案纠错 | 评论(2) 75 1 liupengfeics 采纳率:25% 擅长: C/C++ 数据库DB 恋爱 ...
说明:fgetc 函数返回的字符实际上是文件流中位置指针所指向的字符。fgetc 函数读取错误时,返回EOF并设置文件错误标志位;ferror函数可检测此错误; 该函数以无符号 char强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。 二.fgetc 函数使用 ...
返回指定流的内部文件位置指示符当前指向的字符。然后将内部文件位置指示符推进到下一个字符 如果流在被调用时位于文件的末尾,则该函数返回EOF并为流设置文件结束指示器(feof) 如果发生读错误,该函数返回EOF并设置流的错误指示器(error) Fgetc和getc是等价的,除了getc可以在某些库中作为宏实现 ...