字符输入输出函数:gets、fgets、scanf。puts、fputs、printf。getchar、putcher、getche、getch。

1 字符串

1.1 字符串输入

gets

用gets输入字符串,没有预定的长度,为了知道输入何时结束,解决的办法是读字符串,直到遇到一个换行(\n),按回车键可以结束输入,它读取换行符之前(不包括换行符)的所有字符,在这些字符后添加一个空字符(\0),然后把这个字符串交给调用它的程序它将读取换行符并将其丢弃

缺点:不检查预留有存储区是否能够容纳实际输入的数据,多出来的字符简单地溢出到相邻的内存区,fgets改进了这个问题。

fgets

  1. 他需要第二个参数来说明最大读入字符数,如果这个参数值为n,fgets()就会读取最多n-1个字符或者读完一个换行符为止,由这二者中最先满足的那个结束输入。
  2. 如果fgets()读取到换行符,就会把它存到字符串里,而不是像gets()那样丢弃换行符。
  3. 它还需要第三个参数来说明读哪个文件,从键盘上读数据时,可以使用stdin作为该参数如:fgets( name , Max , stdin); 。

缺点:由于fgets把(\n)也当做输入字符,所以输出时,每遇到(\n)就自动换行,可以用strchr来定位和删除换行符。

scanf

  1. 带有%S格式scanf()函数来读入-一个字符申,带有%C可读取-一个字符,此时空格符也算一个字符所以输入是要注意了。
  2. scanf()使用2种方法决定输入结束。

1.遇到第一个空格,制表符,换行符
2.如果指定了字段宽度,比如%10s,则scanf()就会读入10个字符,或知道遇到第一个空白字符,二者最先满足的那个终止输入
在这里插入图片描述
3.scanf函数返回的是一个整数值,是成功读取的项目数or当遇到文件结束时返回EOF。

1.2 字符串输出

puts

与printf不同,puts显示字符串是自动在其后添加一个换行符,puts遇到空字符时,输出停止,所以确保有空字符存在否则直到发现一个空字符为止。

fputs

  1. fputs函数需要第二个参数来说明需要写的文件,可以使用stdout作为参数来进行输出stdout在stdio.h中定义了。
  2. 与puts不同,fputs并不为输出自动添加换行符。

printf

可以格式化多种数据类型,更常用

1.3 各函数的比较

  • gets()丢弃输入的换行符
  • puts()为输出添加换行符
  • fgets()存储输入的换行符
  • fputs()不为输出添加换行符

2 字符

2.1 字符输入

getch

从键盘键入字符结束后,既不带缓冲区有不带回显

getche

从键盘键入字符结束后,既不带缓冲区而有带回显

putchar

从键盘键入字符结束后,既带缓冲区有带回显

2.2 字符输出

putcher

getchar()和putchar()的区别:
getchar()无参数,函数的返回输入的字符。如:
a = getchar();
putchar()有参数,如char c; putchar©; putchar(‘C’);

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值