但它们之间的主要区别在于fgetc永远是库函数,而getc可以是宏定义,也可以是库函数。fgetc函数从指定的文件流中读取下一个字符,并将其返回。其工作方式是标准的、预测性强,且便于排查错误。相对来说,fgetc在使用上更加安全,因为它遵循标准的函数调用机制,不受宏可能引起的一些奇怪行为的影响。此外,宏定义可能会导致其...
fgetc和getc最大的区别在前者是函数,后者是宏,其中fget前面的字母f即为function函数的意思。使用这两个函数时,需要注意如下几点。 1、getc的参数不应当是具有副作用的表达式。有副作用的表达式,指的是表达式执行后,会改变表达式中某些变量的值。比如++i*++i。 2、因为fgetc一定是一个函数,所以可以得到其地址。这...
两个都是用来从stream中取得一个字符的,区别在于调用getc函数时所用的参数stream不能是有副作用的表达式(稍后解释),而fgetc函数则可以,也就是说,getc可以被当作宏来调用,而fgetc只能作为函数来调用。 一般来说,调用宏比调用函数耗费的时间少。 它们的原型: Code: int fgetc ( FILE * stream ); int getc (FIL...
fgetc和getc他们的区别并不是在他们的使用上,而是在他们的实现上!具体来说,就是带f的(fgetc、fputc)实现的时候是通过函数来实现的,而不带f(putc、getc)的,实现的时候是通过宏定义来实现的!关于他们的不同点,就拿getc和fgetc来说,APUE(p115)上是这么写的: <1>.getc的参数不应当是具有副作用的表达式。 <2...
主要区别就是输入输出的格式,简单来说就是fgetc是获取一串字符而getc就是获取一组字符,同样地可以理解fputc和putc的意思是相通的,一般fgetc和fputc所输入输出的字符类型通常都是long型,而getc和putc输入输出的字符类型则根据return返回值而定。
getc()直接读,每读一次都要操作磁盘 fgetc()有缓存的,既你第一次读了,只有一个字节,实际可能读个1个扇区512字节到缓存,你继续读下一个字节,会直接从缓存中返回,不再读实际磁盘了。随机读取只要在缓存范围内,也会直接返回,不再读实际磁盘,缓存中没有,才读实际磁盘 ...
getc和putc都是针对标准输入输出的,而fgetc和fputc可以对任意的文件操作,也可以用fgetc和fputc对标准输入输出操作 fgetc(stdin);和getc(c)等价 fputc(stdout, c);和putc(c)等价
带f的是从文件读写, 不带的是从标准输入输出
两个都是用来从stream中取得一个字符的,区别在于调用getc函数时所用的参数stream不能是有副作用的表达式(稍后解释),而fgetc函数则可以,也就是说,getc可以被当作宏来调用,而fgetc只能作为函数来调用。 一般来说,调用宏比调用函数耗费的时间少。 它们的原型: ...