前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你真的能分清putc()函数和fputc()函数吗?

你真的能分清putc()函数和fputc()函数吗?

原创
作者头像
用户8639654
修改2021-07-16 10:41:43
6440
修改2021-07-16 10:41:43
举报
文章被收录于专栏:云计算运维

最近小编在讲关于C语言文件部分内容,讲到了fputc()函数。前面在讲字符串的时候,我们还学习过putc()函数,我们知道,putc()函数一般用于标准输出,fputc()函数一般用于文件读写。刚才呢,有一个童鞋在单字符写文件时,调用了putc()函数,另一个童鞋看到了就说必须要调用fputc()函数,为此,两个童鞋争论起来。那么真相是什么呢?

第1点 putc()函数

putc()函数是stdio.h标准库中的函数,用于将一个字符输出到指定流中,函数声明是这样的。

int putc(int ch, FILE * fp);

它有两个参数,ch参数呢表示一个字符;fp参数呢表示一个文件指针,也就是输出流,可以是文件输出流也可以是标准输出流,如果是文件输出流,fp就是一个文件指针,将字符ch写入到文件中,如果是标准输出流,fp就是stdout,将字符ch输出到控制台。

putc()函数的返回值是一个int类型的数据,它将输出的字符以整型数据的形式返回,即返回输出字符的ASCII码值。

举个“栗子”:

//定义文件指针fp,指向文件a.txt FILE* fp = fopen("a.txt","w"); //将字符a写入文件a.txt中 int num = putc('a',fp); //将字符b输出到控制台 int ret = putc('b',stdout); printf("num = %d\nret = %d\n", num, ret);

在上面几行代码中,第一次调用putc()函数将字符‘a’写入到了文件a.txt,返回值赋值给num;第二次调用putc()函数,将字符‘b’输出到控制台,返回值赋值给ret。调用printf()函数输出num与ret的值,分别为97、98。

第2点 fputc()函数

fputc()函数比putc()函数多了一个字符‘f’,这个字符‘f’表示file的意思,表明fputc()函数是专用于文件操作的,它的函数声明如下所示。

int fputc(int ch, FILE * stream);

fputc()函数的参数个数、参数含义及返回值与putc()函数完全相同,因此,虽然表面上fputc()函数专用于文件操作,但它其实也可以用于标准输出。

fputc()函数的功能用法和putc()函数功能及用法完全相同。读者可以将上面代码中的putc()函数替换为fputc()函数,其运行结果完全相同。

可不可以,试一试就知道。

所以,在向文件写入单个字符时,两个函数都可以使用,如果要强行说哪个更好的话,我推荐使用fputc()函数,因为它加了一个‘f’呀,一看就知道是文件(file),不晕不花不糊涂。关于putc()函数与fputc()函数呢,今天我们就讲到这里,如果想进行更深入的学习,请关注黑马程序员教程参与更多互动。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1点 putc()函数
  • 第2点 fputc()函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档