fgetc
函数从指定的文件中读一个字节,getchar
从标准输入读一个字节,调用getchar()
相当于调用fgetc(stdin)
。
#include <stdio.h>
int fgetc(FILE *stream);
int getchar(void);
返回值:成功返回读到的字节,出错或者读到文件末尾时返回EOF
fputc函数向指定的文件写一个字节,putchar向标准输出写一个字节,调用putchar(c)相当于调用fputc(c, stdout)。
#include <stdio.h>
int fputc(int c, FILE *stream);
int putchar(int c);
返回值:成功返回写入的字节,出错返回EOF
fgets
从指定的文件中读一行字符到调用者提供的缓冲区中,gets
从标准输入读一行字符到调用者提供的缓冲区中。
#include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
char *gets(char *s);
返回值:成功时s指向哪返回的指针就指向哪,出错或者读到文件末尾时返回NULL
fgets
函数,参数s
是缓冲区的首地址,size
是缓冲区的长度,该函数从stream
所指的文件中读取以'\n'
结尾的一行(包括'\n'
在内)存到缓冲区s
中,并且在该行末尾添加一个'\0'
组成完整的字符串。
如果文件中的一行太长,fgets
从文件中读了size-1
个字符还没有读到'\n'
,就把已经读到的size-1
个字符和一个'\0'
字符存入缓冲区,文件中剩下的半行可以在下次调用fgets
时继续读。
如果一次fgets
调用在读入若干个字符后到达文件末尾,则将已读到的字符串加上'\0'
存入缓冲区并返回,如果再次调用fgets
则返回NULL
,可以据此判断是否读到文件末尾。
fgets
只适合读文本文件而不适合读二进制文件,并且文本文件中的所有字符都应该是可见字符,不能有'\0'
。
fputs
向指定的文件写入一个字符串,puts
向标准输出写入一个字符串。
#include <stdio.h>
int fputs(const char *s, FILE *stream);
int puts(const char *s);
返回值:成功返回一个非负整数,出错返回EOF
缓冲区s
中保存的是以'\0'
结尾的字符串,fputs
将该字符串写入文件stream
,但并不写入结尾的'\0'
。与fgets
不同的是,fputs
并不关心的字符串中的'\n'
字符,字符串中可以有'\n'
也可以没有'\n'
。puts
将字符串s
写到标准输出(不包括结尾的'\0'
),然后自动写一个'\n'
到标准输出。