读写流

本文详细解析了C语言中用于字符读写的getc、putc等函数的使用方法及特性,包括它们的区别、参数限制、返回值解释以及与文件操作的结合方式。同时,介绍了fgets、fputs等字符串读写函数的用法,并强调了避免使用gets函数以防止缓冲区溢出的安全措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.每次读写一个字符


int getc( FILE *fp )
int fgetc( FILE *fp )
int getchar( void )


getc 和 fgetc 的区别是getc 是由宏实现的而fgetc是个函数。这就意味着:
(1) getc的参数不能是有副作用的表达式。
(2) fgetc可以作为参数传递给另一个函数。
(3) getc的效率要比fgetc高一些。
注意这三个函数返回值都是整数而不是char类型。因为返回值除了要表示256个字符外还要表示一个EOF。
无论是出错还是遇到文件尾都返回EOF,可以用feof和ferror函数进行区分。


int putc( int c, FILE *fp )
int fputc( int c, FILE *fp )
int putchar( int c )
与输入函数一样putc由宏实现,fputc由函数实现。


2.每次读写一行。


char* fgets( char *buf, int size,FILE *fp)
char* gets( char *buf )
gets 函数没有指定缓冲区长度,因此可能会导致问题,因此不建议使用。
fgets 函数得出参总是一个字符串,但可能是一个不包括换行符的字符串。


int fputs(const char*s ,FILE *stream)
int puts(const char *s)


fputs函数不会自己添加换行符,而puts会增加换行符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值