输入输出函数读写细节

红心字符I/O
int fgetc( FILE *stream );
int getc( FILE *stream );
int getchar( void );

fgetc、getc和getchar:从流中读取下一个字符并返回(getchar总是从标准输入中读);如果流中没有可读的字符那么返回EOF

int fputc( int character, FILE *stream );
int putc( int character, FILE *stream );
int putchar( int character );

fputc、putc和puchar:把单个字符写到指定的流中(putchar总是写到标准输出);无论何种原因,失败时均返回EOF

红心非格式化行I/O
char * fgets( char *buffer, int buffer_size, FILE *stream );
char *gets( char *buffer );

int fputs( char const *buffer, FILE *stream );
int puts( char const *buffer );

fgets从指定流中读取字符并保存到buffer中,直到出现下列两种情况时fgets才停止读取:(1)读到了换行符(newline)并将换行符存入buffer中;(2)读取了buffer_size – 1 个字符。这两种情况下都会在buffer最后加一个NUL字符从而构成一个字符串。(注:对于情况(1)是在换行符newline之后添加NUL字符,并不会覆盖掉换行符。) 如果返回NULL说明读到了文件末尾。否则返回一个指向buffer的指针。

注:NUL不在strlen计数范围内,而换行符newline在strlen的计数范围之内。

gets从标准输入读取一行(也就是说gets一直读到换行符为止,不管buffer能不能装得下,这也正是gets的缺陷所在,因此不推荐使用该函数),但它不把结尾的换行符newline保存到buffer中。

fputs:传递给fputs的buffer参数必须包含一个以NUL结尾的字符串,fputs将该字符串写到指定的流中,字符串中有几个换行符就写几个换行符,没有就一个也不写。

puts:把字符串写到标准输出,字符串中有几个换行符就写几个换行符,并且在写完后,它还会额外添加一个换行符到标准输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值