上一章我们学习了printf,这一章我们就来看一看scanf:

在C语言中,C函数库包含了多个输入输出函数,scanf是其中最常用的一个,因为它可以读取各种格式的数据。

一般来讲,我们从键盘输入的都是单个的字符,那怎么把这些单个的字符组合成你想要输入的结果呢,这就是scanf所做的事情,它可以将你所输入的内容转换称你所选的格式的内容。说起来scanf和printf很想,它就像printf的逆操作。

我们来回顾下printf的格式(printf的p是小写的,上一章和这一章的配图有问题,主要是word文档首字母自动大写一时没注意,这里纠正下):

用scanf如何一次性输入多个字符串(字符串的格式化输入输出之scanf)(1)

我们再来看下scanf的格式:

用scanf如何一次性输入多个字符串(字符串的格式化输入输出之scanf)(2)

还是来看一段一个简单的代码:

用scanf如何一次性输入多个字符串(字符串的格式化输入输出之scanf)(3)

这里我用红色箭头标示了特别需要注意的地方,就是这个分隔符,必学要注意,很多人前面程序里用的是逗号,后面输入的时候用了空格,导致程序出错。这里必须是一致的,程序里是什么,那么运行时也应该输入那个分隔符。

大家看到在scanf中的控制字符和printf中的控制字符基本是一致的,如果不清楚这些控制字符是什么意思,可以看一下我上一篇文章<<字符串的格式化输入输出之printf>>,里面有比较详细的介绍。

在scanf和printf格式化控制字符之外,有时候我们可能还需要一些特别长度输出等等,列如我们可以用*(星号)来控制输出的字符滞后多少个字符输出,如下图:

用scanf如何一次性输入多个字符串(字符串的格式化输入输出之scanf)(4)

下表列出了一些常用的修饰符:

用scanf如何一次性输入多个字符串(字符串的格式化输入输出之scanf)(5)

这里只写了一些,还有许多的的修饰符,大家可以去查一下。

最后,只是看这些其实并没什么用,还需要大量的实践操作,也就是上机练习啦,所以我们来个作业吧,大家可以去自己练习下。

题目1:编写一个程序,要求输入姓名,并按照以下方式打印出来:

a)、把姓名引在双引号中答应出来;

b)、在宽度为20个字符的字段内打印姓名;

c)、在宽度为20个字符的字段内左对齐打印;

,