700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 库函数fgetc getc与fputc putc的功能与区别

库函数fgetc getc与fputc putc的功能与区别

时间:2020-09-25 01:55:45

相关推荐

库函数fgetc getc与fputc putc的功能与区别

目录

一.函数功能

1.1fgetc与getc的功能

1.2fputc与putc的功能

二.区别

一.函数功能

1.1fgetc与getc的功能

这两个函数的功能都是从指定的流中获取字符。

fgetc函数原型:int fgetc(FILE *stream)

getc函数原型: int getc(FILE *stream)

使用方法演示代码:

int main(){FILE* pf = fopen("text.txt", "r"); //以只读的方式打开文件,文件中存储abcdefif (NULL == pf) //检验是否打开成功{perror("fopen");return 1;}char c1 = fgetc(pf); //使用fgetc函数读取字符,pf发生偏移char c2 = getc(pf); //用getc函数读取字符,pf再次发生偏移printf("c1 = %c, c2 = %c\n", c1, c2); //c1 = a, c2 = bfclose(pf);pf = NULL;return 0;}

1.2fputc与putc的功能

这两个函数的功能都是将指定的字符输入到指定的流中

fputc函数原型:int fputc(int c, FILE *stream)

putc函数原型:int putc(int c, FILE *stream)

其中c表示指定的字符对应的ASCII吗值,stream表示指定的流

使用方法演示代码:

#include<stdio.h>int main(){FILE* pf = fopen("text.txt", "w"); //以写的方式打开文件if (NULL == pf){perror("fopen");return 1;}char c1 = 'a';char c2 = 'b';fputc(c1, pf); //将字符a写入文件putc(c2, pf); //将字符b写入文件fclose(pf);pf = NULL;return 0;}

二.区别

从表面上看,fgetc和getc的功能相同,fputc和putc的功能相同,那他们的区别在哪里呢?

注意:fgetc和fputc本质上函数,而getc和putc本质上是宏!

更细的区别有以下三个:

调用宏(getc、putc)时,宏的参数不能是有副作用的表达式。有副作用的表达式,指的是表达式执行后,会改变表达式中某些变量的值,如++i。函数可以获取其地址,并将其赋值给函数指针,而宏不可以获取地址。调用宏的效率要高于调用函数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。