二、数据的输出与数据的输入
2、数据的输入
数据输入不常用,简单掌握即可,因为书写真正项目代码时,一般不会从键盘上输入数据 ,更何况一旦输入错误还可能 会导致程序执行出现异常。但作为学习的一部分,还是有必要掌握一下这部分内容, 方便以此为基础,学习更多、更深入的新知识。
1)getchar函数
用于等待用户从键盘上输人一个字符,按 Enter键后程序才会继续执行。
格式:
getChar();
例:
2)scarf函数
这是一个格式化输入函数,用于从键盘输入任何类型的一到多个数据。
格式:
scanf(格式控制字符串,地址列表) ;
这个函数的格式和 printf函数非常类似。特别值得一提的是,当用户从键盘上输入数据时,最后都需要输入回车表示整个输入数据的结束。
例:让用户从键盘输入三个数据,并分别保存到 a、b,c变量中,d%是按照十进制整型数据输入,三个待输入的数据之间可以用空格、回车、Tab键分隔,但不可用逗号分隔,否则会得到错误的程序执行结果。
例:在 scanf 函数的格式控制字符串中加入了逗号,那么在输入数据的时候 ,也要在对应的所输入的数据之间输入逗号作为分隔,否则会得到错误的程序执行结果。
例:在 scanf 函数的格式控制字符串中加入了冒号,那么在输入数据的时候 ,也要在对应的所输入的数据之间输入冒号作为分隔,否则会得到错误的程序执行结果。
scanf函数不仅支持 %d 格式字符,还支持其他的多种格式字符,但其他的格式字符都不常用,想了解更多信息,可以去百度搜索scanf格式字符。
注意:
(1)scanf函数圆括号中的第二个参数开始,用的是变量地址 ,千万不要丢掉&符号,否则程序要么编译出错无法执行,要么执行后会报错崩溃。
(2)scanf是一个非常容易用错的函数,尤其是输人多个数据时 ,很容易因为输入 的格 式问题导致对应的变量并没有得到期望的结果 ,往往会发现程序最终执行不正确却不知道问题出在哪里,所以,建议在 scanf语句之后,立即稍加 printf输出语句,通过输出查看通过 scanf函数输入的变量值是否和预期的完全一样。
例:下面代码中第一个 printf语句就是用于验证通过 scanf输入的变量值是否是所期望的。
(3)当输入回车符后,整个 scanf 语句输入结束, 此时如果还没输入完数据 ,则程序肯定不会按预期产生正确的结果。比如本来要输入三个变量的值 ,结果刚输入两个变量的值就按下了Enter键来结束输入。
(4) scanf函数具有一定的学习价值,但在实际工作中几乎没有实用价值。
(5)不同的C++开发软件的版本,如果出现错误提示:error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead... 这个错误的大概意思是系统认为 scanf 函数不安全,建议用 scanf_s替代。这是开发软件版本问题,如果不想出现这个报错,可以在文件的头部#include下面增加一行代码就可以忽略这个警告信息了。
#pragma warning(disable:4996)