《c和指针》笔记--梳理一下fgetc,getc,getchar,fputc,putc,putchar....

输入输出函数家族

家族名                   目的              可用于所有的流                   只用于stdin和stdout 

getchar              字符输入          fgetc,getc                                getchar

putchar              字符输出          fputc,putc                                putchar

gets                  文本行输入            fgets                                         gets

puts                  文本行输出            fputs                                         puts

scanf                格式化输入            fscanf                                       scanf

printf                 格式化输出            fprintf                                        printf


注意点:

fgetc和fputc都是真正的函数,但是getc,putc,getchar和putchar都是通过#define指令定义的宏,

所以在调用getc,putc,getchar和putchar时不能使用具有副作用的参数。


fgets的用法如下:

     CHAR *fgets(CHAR *string,int n,FILE *stream);

fgets()用来从参数stream所指的文件内读入字符并存到参数string所指的内存空间,直到出现换行字符、读到文件尾或是已读了n-1个字符为止,最后会加上NULL作为字符串结束。如果在未读满n-1个字符之时,读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符,再有一个字符为NULL。如果string无法存放整行,则下一次调用fgets时将从stream的下一个字符开始读取,不会出现数据丢失的情况。

fputs向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)

gets从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在str指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。

gets函数不安全,没有限制输入缓冲区的大小,容易造成溢出,所以尽量不要使用gets。



你可能感兴趣的:(《c和指针》笔记--梳理一下fgetc,getc,getchar,fputc,putc,putchar....)