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