关于这些C库输入函数、输出函数的用法,可以在命令行输入“man 3 xxx”来查询。
一、printf()函数、scanf()函数
1、printf()函数
函数模型
int printf(const char *format, ...);
函数作用
把存储在计算机中的二进制格式的数值,按照转换说明,转换成一系列字符(一个字符串)以便于显示,如0100 1100(76),%d说明将之转换成字符7和6,并显示为76。
函数返回所打印的字符的数目。它针对所有的打印字符,包括空格和不可见的换行字符。
补充说明
常见的转换说明有:%d,%s(字符串),%c(字符);
2、scanf()函数
函数模型
int scanf(const char *format, ...);
函数作用
读取输入的字符,并将输入的字符按照格式说明进行转换。
比如我们想输入整数2004时,输入的是字符2、0、0、4,需要使用scanf(“%d”)将输入解释(或者说转换)为整数;其他情况类似。
函数返回成功读取的项目的个数。
参数说明
该函数使用指向变量的指针作为参数。
补充说明
(1)scanf()函数使用空白字符来表示输入不同变量
它依次把转换说明与字段匹配,并跳过字段之间的空白字符(即不读入空格)。不过当使用%c时,它也会读入空白字符。
(5)%s
跳过空白字符(空格)直到遇到第一个非空白字符,然后保存(再次遇到空白字符时之间的)所有非空白字符。存储的时候,会在结尾附加一个空字符。
(6)%c
对所有的输入字符都是平等的,如果下一个输入字符是一个空白字符,不会跳过空白字符,而是把它赋给指定的变量。注意,它表示只读一个字符。
二、getchar()函数、putchar()函数
这两个函数是面向字符的输入输出函数,用于标准输入与标准输出。
1、getchar()函数
函数原型
int getchar(void);
函数作用
该函数用于读取从标准输入(一般是键盘)键入的一个字符。
该函数返回用户输入的字符的 ASCII 码。
补充说明
(1)该函数只能得到一个字符,如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取,即后续的getchar调用不会等待用户按键,而直接读取缓冲区中之前剩余的字符,直到缓冲区中的字符读完为后,才等待用户按键。
(2)文件结尾检查
while( (ch=getchar()) != EOF )
(3)getchar()函数,其等价于getc(stdin)函数。
2、putchar()函数
函数原型
int putchar(int c);
函数作用
该函数用于向标准输出(一般是显示屏)输出的一个字符。
补充说明
putchar(c)函数,其等价于 putc(c, stdout)函数
三、getc()函数、putc()函数
1、getc()函数
函数原型
int getc(FILE *stream);
函数作用
该函数从文件指针stream所指的文件中获取一个字符。
补充说明
当文件指针stream指向标准输入文件(一般指键盘)时,此函数等价于getchar()函数。
2、putc()函数
函数原型
int putc(int c, FILE *stream);
函数作用
该函数将字符 c 写入文件指针stream所指向的文件中。
补充说明
当文件指针stream指向标准输出文件(一般指显示屏)时,此函数等价于putchar(c)函数。
四、gets()函数、puts()函数
1、gets()函数
函数原型
char *gets(char *s);
函数作用
该函数用于获取一个字符串。
它读取换行符('\n')之前的所有字符,并在末尾添加一个空字符(‘\0’),以形成一个完整的字符串。返回值是指向这个字符串的指针。
补充说明
(1)按回车键会产生换行符。
(2)该函数也读取换行符,但是会丢弃。因此下一次读取时,不会存在之前的换行符。
(3)如果出错或者遇到文件结尾,返回空指针NULL,所以错误检测如下:
while( (gets(name))!= NULL )
2、puts()函数
函数原型
int puts(const char *s);
函数作用
该函数将字符串 s 写入标准输出文件(一般是屏幕)中,即在屏幕上显示字符串 s。
补充说明
(1)显示字符串时自动在其后添加一个换行符;
(2)遇到空字符(字符串的末尾的‘\0’)就会停止显示。
五、fgets()函数、fputs()函数
1、fgets()函数
函数原型
char *fgets(char *s, int size, FILE *stream);
函数作用
从文件指针stream所指向的文件中读取(size-1)个字符到s所指向的buff中。
补充说明
(1)第二个参数说明最大可读入的字符数,如果为n,则最多读取n-1个字符,或者读完换行符为止(即会把它存在字符串里,而不是丢弃它)。
(2)如果是从键盘上读取,则标示为stdin;
2、fputs()函数
函数原型
int fputs(const char *s, FILE *stream);
函数作用
将字符串s写入到文件指针stream所指向的文件中。
补充说明
(1)如果是显示在屏幕,则标示为stdout;
(2)不为输出添加自动换行符。