Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1297678
  • 博文数量: 860
  • 博客积分: 425
  • 博客等级: 下士
  • 技术积分: 1464
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-20 19:57
个人简介

对技术执着

文章分类

全部博文(860)

文章存档

2019年(16)

2018年(12)

2015年(732)

2013年(85)

2012年(15)

我的朋友

分类: LINUX

2015-03-14 14:21:49

原文地址:标准IO的函数分析 作者:xutianxi

1. 一次读取一个字符: 
   int fgetc(FILE *stream);
   int getc (FILE *stream);
   int getchar(void);
其中只有fgetc是由函数实现,其他两个是依赖fgect的实现的宏定义,这三函数都是返回读取到的字符,注意是int型,不是char,这是因为出错时返回-1 ,如果是char返回值的话,又因为char型是-1 与255 存储形式是一样的,所以要把返回值定义为int型
2.一次输入一个字符:
   int fputc(int c, FILE *stream);
   int getc (int c, FILE *stream);
   int putchar(int c);
这三函数读取int c中的最低8位至FILE * 流中
3.一次输入一行:
   char *gets(char *s);
   char *fgets(char *s, int size, FILE *stream);
不建议使用gets函数,因为不确定缓冲区越界的情况,
fgets是从stream流中读取字符直至遇到\n换行符(\n也会被读入),如果一直不是换行符的话,也最多是读取size-1个字符,最后一个字符必须是\0结束符,以保证得到的是字符串,所以必要时我们可以通过判断读到的字符串中结束符\0前面的那个字符是不是\n来判断是否该行结束。
4.一次输出一行:
   int puts(const char *s);
   int fputs(const char *s, FILE *stream);
fputs是将一个以NULL符终止的字符串写入到指定流中,终止符不写入
puts与fputs的区别在于,puts写完后加入一个换行符\n
 
阅读(184) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~