= EOF) //不断读取文件知道结束 { putchar(ch); //打印 } 分析 : fgetc 格式为 int fgetc(FILE *stream...);这个函数的返回值,是返回所读取的一个字节。...如果读到文件末尾或者读取出错时返回EOF 。当读取字符时,返回值为 0x00 -- 0xff 之间。计算机系统中,数值一律用补码来表示和存储。...当ch 类型为char 时(错误使用方式) 1.fgetc读到字符0xFF时转换成32位为0x000000FF返回 ,代码中用 char类型的ch接收,0x000000FF被截断,ch等于0xFF。 ...当ch 为 int 类型 (正确使用方式) 读到 字符 0xFF函数返回为0x000000FF,读到末尾返回EOF即0xFFFFFFFF,不会导致判断出错。
long int ftell ( FILE * stream ); 6.3 rewind 让⽂件指针的位置回到⽂件的起始 void rewind ( FILE * stream ); int main...feof 的作⽤是:当⽂件读取结束的时候,判断是读取结束的原因是否是:遇到⽂件尾结束。...⽂本⽂件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: • fgetc 判断是否为 EOF ....fp) { perror("File opening failed"); return EXIT_FAILURE; } //fgetc 当读取失败的时候或者遇到⽂件结束的时候,...都会返回EOF while ((c = fgetc(fp)) !
文本文件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: fgetc 判断是否为 EOF ....fp) { perror("File opening failed"); return EXIT_FAILURE; // 返回失败状态码,通常定义为1,表示程序异常退出 } //fgetc 当读取失败的时候或者遇到文件结束的时候...,都会返回EOF while ((c = fgetc(fp)) !...= EOF) // 标准C I/O读取文件循环 // 使用fgetc函数从fp指向的文件中逐个字符地读取内容。...fgetc函数返回读取到的字符,或者在读取失败或 遇到文件结束时返回EOF { putchar(c);// 使用putchar函数将读取到的字符输出到标准输出 } //判断是什么原因结束的
* stream ); rewind:让文件指针的位置回到文件的起始位置 void rewind ( FILE * stream ); 文件结束判定 牢记:在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束...而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。...文本文件读取是否结束,判断返回值是否为EOF (fgetc),或者NULL(fgets) 例如: fgetc判断是否为EOF. fgets判断返回值是否为NULL....fp) { perror("File opening failed"); return EXIT_FAILURE; } //fgetc 当读取失败的时候或者遇到文件结束的时候...,都会返回EOF while ((c = fgetc(fp)) !
它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。 ?...这个问题让我想了很久,后来查了资料才知道,在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。...所以,处理文件可以写成下面这样: int c; while ((c = fgetc(fp)) != EOF) { do something } 这样写有一个问题。...fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾。...fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾
我学习C语言的时候,遇到的一个问题就是EOF。 它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。...这个问题让我想了很久,后来查了资料才知道,在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。...所以,处理文件可以写成下面这样: int c; while ((c = fgetc(fp)) != EOF) { do something } 这样写有一个问题。...fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾。...fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾
关闭文件 我们可以使用fclose来关闭文件, 函数原型为: int fclose( FILE *fp ); 如果fclose执行成功, 会返回0, 如果执行出错则会返回EOF(在stdio.h中定义)...如果函数执行成功会返回一个非负整数, 否则返回EOF, 该函数的原型为: int fputs ( const char * str, FILE * stream ); 下面是一个使用示例 void test_fputs...fgetc一次读取一个字符, 同时将文件指针往后移一个字符, 如果读取成功会返回读取的字符, 出现错误会返回EOF....当读到文件末尾时, 也会返回EOF, 并且在输出流中设置文件结束标志(end-of-file indicator)....* stream ); fgets从stream中读取内容到str, 当满足下面任意一个条件时完成读取操作: 读取了num-1个字符 读到了换行符(newline character) 读到了文件结尾
) FILE* stream 打开文件的地址 函数返回值:int类型,如果为0,则关闭成功 int main() { //文件的打开 FILE* pf = fopen("D:\\桌面\\test.txt...int fgetc(FILE* stream) 返回值:打开成功返回读出的那个字符; 打开失败返回EOF, //读文件,mode改为r char ch1 = fgetc(pf); char...,看函数原型: 函数原型中返回值的类型为int,一般以EOF作为失败时的返回值,比如fgetc 函数原型中返回值的类型为char*,一般以NULL作为失败时的返回值,比如fopen和fgets...备注:文本编辑器只能解析文本文件的数据 7.文件读取结束的判定 int feof(FILE* pf) 作用:当文件读取结束时,判断时读取失败异常结束,还是遇到文件末尾正常结束 返回值:返回值为为非...0值则正常结束,返回0值则代表异常结束 文件读取时,不能用feof函数的返回值直接用来判定文件是否结束 而是应用于当文件读取结束时,判断时读取失败异常结束,还是遇到文件末尾正常结束 以用feof
与 fputc 字符的读取函数 fgetc : 1.参数 FILE *stream :这是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流; 2.返回值:该函数以无符号 char...int 的形式(即字符的ASCII值)返回写入的字符,如果发生错误则返回 EOF。...文本文件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: fgetc 判断是否为 EOF ....fp) { perror("File opening failed"); return EXIT_FAILURE; } //fgetc 当读取失败的时候或者遇到文件结束的时候,都会返回...EOF while ((c = fgetc(fp)) !
stream :指向要写入的文件的文件指针。 函数返回值: 如果成功写入字符,则返回写入的字符,如果发生错误,则返回 EOF。...函数原型: int fgetc ( FILE * stream ); 从流中获取字符 返回指定流的内部文件位置指示符当前指向的字符。...读到文件末尾或则读取失败,返回EOF(-1)。...stream: 指向要写入的文件的文件指针。 函数返回值: 如果成功写入字符串,则返回非负值(通常为 0),如果发生错误,则返回 EOF。...3.1 feof函数 函数原型: int feof ( FILE * stream ); 当文件读取结束的时候,判断是读取结束的原因是否是:遇到文件尾结束。
fgetc函数 int fgetc(FILE* stream); 输入: FILE * stream文件结构指针 输出: 如果读取成功,返回读取到的字符。如果文件结尾或失败,则返回EOF。...我们可以在fgetc函数返回EOF后,再次根据上述两个函数,判断究竟是文件结尾了,还是遇到了错误。...int fflush(FILE* stream); 输入: FILE * stream文件结构指针 输出 刷新缓存区成功返回0,否则返回EOF,并且ferror可以检测到文件读写出错。...当任意文件操作函数读写相应长度的字节后,指针也会偏移相应的长度。 fgetc函数每次获取一个字节。因此,文件指针向后移动一个字节。所以,重复调用fgetc函数可以逐个读取文件内的字符。...函数fscanf的返回值的意义为:参数列表中成功填充的参数个数。若文件读取失败或文件结尾,将返回EOF。 若返回EOF,此时可以通过feof以及ferror函数查询具体的原因。
返回值: 若关文件动作成功则返回 0 ,有错误发生时则返回 EOF 并把错误代码存到 errno. 错误代码 EBADF 表示参数 stream 非已打开的文件....(由文件中读取一个字符) 头文件: include 函数声明: int fgetc(FILE * stream); 说明: fgetc()从参数stream所指的文件中读取一个字符.若读到文件尾而无数据时便返回...); 说明: getc() 用来从参数 stream 所指的文件中读取一个字符.若读到文件尾而无数据时便返回 EOF getc() 与 fgetc() 作用相同,但 getc() 为宏定义,非真正的函数调用...返回值: 成功则返回 c 字符,若有错误则返回 EOF....返回值: 成功返回 0 ,失败返回 EOF ,错误代码存于errno中.
返回值:返回成功读取的数据项的数量。...如果在读取任何数据之前遇到错误或到达字符串的结尾,则返回EOF 假设你有一个包含整数和浮点数的字符串,你想从中提取这些数值: #include int main() { char...feof int feof(FILE *stream); feof 用于检查是否已经读取到文件的末尾。它检查与文件流关联的 EOF 标志位。...如果文件流有错误,返回非零值;否则,返回 0 注意点 EOF and 错误:feof 和 ferror 检查的是不同的情况:feof 是检查是否到达文件末尾,而 ferror 是检查文件操作是否发生错误...判断方式 文本文件读取是否结束,判断返回值是否为EOF( fgetc),或者NULL(fgets) 二进制文本的读取结束判断,判断返回值是否小于实际要读的个数,例如 fread判断返回值是否小于实际要求的个数
函数返回值为读取的字符,如果读取失败或到达文件结尾,则返回EOF(-1)。 使用fgetc()函数时,需要先打开文件流,可以使用fopen()函数打开文件,然后使用fclose()函数关闭文件流。...int fputc(int c, FILE *stream); 其中, c是要写入的字符,stream是指向要写入的文件的指针。如果函数执行成功,则返回写入的字符,否则返回EOF。...如果成功写入字符串,则函数返回一个非负值;否则,返回EOF(-1)。...文本文件读取是否结束,判断返回值是否为EOF (fgetc),或者NULL(fgets) 例如: fgetc判断是否为EOF....fp) { perror("File opening failed"); return EXIT_FAILURE; } //fgetc 当读取失败的时候或者遇到文件结束的时候,都会返回EOF
); 注意: fputc函数的功能为向一个流中输出字符,返回类型为 int 型,当函数输出字符成功,则返回字符相应的ASCII码值,当输出失败,则返回EOF fgetc函数可从文件流中获取字符,返回类型为...int 型,当函数输入字符成功,则返回字符相应的ASCII码值,当失输入失败,则返回EOF 注:每当函数运行一次后,流(标准输入流或者文件流)的指针就会指向读取内容后一个空间的首地址 示例...,函数的第一个参数为被写入的字符串(首地址),第二个参数为一个流,函数的返回值为 int 型,当函数写入成功,则返回一个正数,否则返回EOF 示例: int main() { FILE* pf =...,否则返回零) ferror函数 作用:用于判断是否遇到错误而读取失败结束(如果遇到错误返回非零,否则返回零) 读取结束判断方向 文本文件读取是否结束,判断返回值是否为 EOF ( fgetc...,都会返回EOF while ((c = fgetc(fp)) !
返回文件指针相对于起始位置的偏移量 long int ftell ( FILE * stream ); 示例: 我们只对 int main() { FILE* pf = fopen("test.txt...而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。...文本文件读取是否结束,判断返回值是否为EOF(fgetc),或者NULL(fgets) 例如: fgetc判断是否为EOF. fgets判断返回值是否为NULL....fp将其置为真 perror("File opening failed"); return EXIT_FAILURE; } //fgetc 当读取失败的时候或者遇到文件结束的时候...,都会返回EOF while ((c = fgetc(fp)) !
); 第一个参数是要写的字符 */ /* fgetc---读取一个字符 int fgets(FILE*stream) 只有一个参数就是那个文件的流 读取失败就会返回EOF, 读取正常的话会返回对应字符的...ASCII码值,两个参数,第一个参数是要写的字符 第二个参数是文件对应的流,文件指针 fgetc读取字符,参数是对应的文件的指针 读取失败就会返回EOF, 读取正常的话会返回对应字符的ASCII码值 int...) 例如: • fgetc 判断是否为 EOF . • fgets 判断返回值是否为 NULL ....⽂件结束的时候,都会返回EOF while ((c = fgetc(fp)) !...= EOF)//不等于EOF就说明读取正常 { fputc(ch, pfwrite);//fputc的第一个参数是要写的字符,第二个是文件指针 } //当返回值是
文件的随机读写 2.1 fseek 根据文件指针的位置和偏移量来定位文件指针(文件内容的光标) int fseek ( FILE * stream, long int offset, int origin...feof的作用是:当文件读取结束的时候,判断读取结束原因是否是:遇到文件末尾结束。 1. 文件读取是否结束,判断返回值为EOF(fgetc),或者NULL(fgets) 2....二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。 例如: fread判断返回值是否小于实际要读的个数。...fp) { perror( "File opening failed" ); return EXIT_FAILURE; } //fgetc 当读取失败的时候或者遇到⽂...件结束的时候,都会返回 EOF while ((c = fgetc(fp)) !
fgetc函数原型如下: int fgetc( FILE *stream ); stream:读取字符的来源 fgetc函数读取正常时返回读取到的字符的ASCII码值,失败时返回EOF 运行下面的代码...); str:指向char型数组元素的指针 count:写入的最大字符数(典型的为 str 的长度) stream:读取数据来源的文件流 fgets函数的返回值:成功时为str,失败时为NULL...); fwrite函数的参数: buffer:指向数组中要被写入的首个对象的指针 size:每个对象的大小 count:要被写入的对象数 stream:指向输出流的指针 fwrite函数的返回值:成功写入的对象数...); feof函数的返回值:若已抵达流尾则为非零值,否则为 0 feof函数的作用是:当文件已经读取结束的时候,判断读取结束的原因是否是遇到文件结尾 但是这个函数经常被用错,部分人以为feof...函数的作用是判断文件读取是否结束,其实不是的 5.2 文本文件读取结束 文本文件读取是否结束,判断返回值: fgetc:判断是否为EOF fgets:判断是否为NULL 例如: #include <stdio.h
领取专属 10元无门槛券
手把手带您无忧上云