说完,printf进行输出,那就必须要存在输入与之对应,否则的话只有输出没有输入会使人机交互显得很单一,很难达到目标要求。
输出由scanf来进行,以下三种为scanf的常见用法:
scanf("输入控制符",输入参数);
输入控制符与前一节输出控制符类似,都是指输入输出时所确定的变量类型由%标识,而输入参数表示的是所对应变量参数的位置(地址),像int ,char 类型的都是用&+变量来表示,进行数据的录入。scanf("输入控制符 非输入控制符",输入参数);
非输入控制符与上一节非输出控制符类似,相当于输入的时候需要原模原样的输入,格式必须要与双引号内的格式相同。
但是,这种方法一般都不采用,程序设计是为了用户方便才设计的,这样子显然会使得过程更加繁琐。scanf("输入控制符1 输入控制符2 ",输入参数1,输入参数2);
进行多变量的输入,只需要注意一点:双引号内部如果存在非输入控制符(包括逗号,\n等)就必须原模原样的输出,所以为了避免过多的错误,尽量简单即可。
而在实际的运用过程中,往往会出现多变量的输入,虽然程序员知道每一次所输入变量所代表的是什么,但是用户使用的时候就不一定会很清楚了,所以需要一定的提示来进行。就利用上一节的
printf("输出字符串");
就直接用文字表示每一个变量所代表的含义。
但是使用的过程中,往往会出现某些时候多输入了一个字符,容易导致后续程序变量输入的时候产生错误,所以可以通过在scanf的前一行加上这一段语句,就可以防止之前的错误数据对后续进行干扰。
char c; //定义什么变量名字其实都无所谓
while ((c=getchar()!='\n'))
continue;
此程序可以直接在前一个数据录入的时候对其它无用的数据直接进行取用,直至回车,于是就可以进行下一个变量的输入。