常用的输入输出函数

  • getchar
  • gets
  • scanf
  • putchar
  • puts
  • printf

getchar

int getchar( void );
返回值为int,所以需要用一个int变量来接收,不管输入几个字符,每次都只接收第一个字符,常与while和putchar配合使用。

从下面这张图可以看出,输入一个空格也会打印

当然,获取一个字符用得不多,每次都需要获取一串,所以我们可以配合while来使用。
用while来循环获取,不满足某一条件就退出。下面是三个例子:

  • 一直获取,一直输出,直到用户手动结束
  • 当输入的包含 . 就结束
  • 输入换行结束

gets

char *gets( char *buffer );
从标准输入流中读取一行,并存储到缓冲区中。
当我们需要获取一个字符串时(特别是字符串中有空格的),就可以使用gets函数。

下面定义了一个大小为5的字符数组,我们输入了5个字符加回车,出现了这个情况。

对于上面的错误,我们说了gets函数是从标准输入流中读取一行,并存储到缓冲区中,而这一行是由除了第一个换行符(也就是回车)以外的所有字符组成,然后在返回这行之前将换行换成空字符(‘\0’)。

scanf

int scanf( const char *format [,argument]… );
可以看出函数的返回值是int,而参数可以是多个。

从下面这段代码和运行结果可以看出:

  • 我们输入一个参数后,不管是输入空格还是换行,都不会将空格和换行符视为参数的值。
  • 输入字符串时,只接收第一个空格以前的字符。
  • 函数的返回值是成功接收的参数个数。

putchar

int putchar(int c);
参数和返回值都是int型,返回参数的ASCII码值
所以,putchar(48)和printf(“%c”,48)的效果一样,都是输出ASCII码值为48的字符(输出0)。

puts

int puts( const char *string );
函数的作用是:将字符串输出,用换行符(‘\n’)替换字符串的结束空字符(‘\0’)。

从下面这段代码和运行结果可以看出:

  • 字符串当中有空格也能将空格后的字符输出。
  • 字符串中有\0,那么它之后的字符就不输出。
  • puts函数输出字符串之后,会在字符串结尾自动换行。
  • 返回值是一个非负值。

printf

int printf( const char *format [, argument]… );
函数返回值是int,参数可以有多个。
函数的返回值是打印的字符数,类似 \t 和 \n这种都算一个字符。

  • 输出的字符串中如果有 \0,那就只输出 \0之前的内容。
  • printf函数不会自动换行,需要手动添加换行符 \n。

以上就是C语言常见的输入输出函数。
如有错误,还望指出。