C语言中的scanf

您所在的位置:网站首页 scanf函数用法例子 C语言中的scanf

C语言中的scanf

2023-09-17 08:35| 来源: 网络整理| 查看: 265

scanf

C语言中,scanf语句用于扫描键盘输入的数据,存储到变量的地址中。 有两种用法:

scanf(“输入控制符”,输入参数);scanf(“非输入控制符 输入控制符”,输入参数); 非输入控制符必须原样输入

输出参数由若干个地址组成,可以是变量的地址,或字符串的首地址。

使用scanf的例子

例一:

#include int main() { int data; printf("请输入一个整数:/n"); scanf("%d",&data);//注意后面这里的变量“data”前一定要加取地址符& printf("你输入的整数是:%d\n",data); return 0; }

上面的代码编译运行后可以识别输入了一个什么数,并打印在屏幕上。

在上述代码中,如果scanf语句换成scanf("data=%d",&data);,那么在输入数据的时候就要按照双引号里面的格式先输入data=,后面接着敲要输入的数据。

例二:(输入多个数据)

#include int main(void) { int data1,data2,data3; printf("请输入三个整数:\n"); scanf("%d%d%d",&data1,&data2,&data3); printf("你输入的三个数是:%d,%d,%d",data1,data2,data3); return 0; }

按照上述代码运行,输入数据的时候可以输入一个数据后按空格,紧接着输入下一个数据,输入完最后一个数据后直接按回车。也可以输入一个数据按一次空格。

如果上述代码的scanf语句换成这样:scanf("%d,%d,%d",&data1,&data2,&data3);(在%d之间加了逗号),风险可能会很大。因为如果只输入一个数据后不小心按了回车,那程序记录一个数据就直接结束了。后面两个数据是系统默认给你的两个数。

此时,正确的输入只有这样(用空格隔开也不行了):

如果例二代码中的scanf语句换成这样:scanf("%d %d %d",&data1,&data2,&data3);(在%d之间加了空格),也会有风险,风险和上面一样。此时,正确输入有两种:

对像scanf("a=%f,b=%f,c=%f",&a,&b,&c);这种格式的,编译运行程序后,输入的内容一定要按照双引号里面的内容敲:a=(要输入的值),b=(要输入的值),c=(要输入的值),才能正确输入。

因此,写scanf的时候千万不要在双引号里面乱加东西😂,而且建议有多少个数据就写多少个scanf语句。

使用scanf输入字符 #include int main(void) { char data1; char data2; char data3; printf("请输入三个字符\n"); scanf("%c%C%C",&data1,&data2,&data3); printf("你输入的三个字符是:data1=%c,data2=%c,data3=%c\n",data1,data2,data3); return 0; }

上述代码可以扫描输入的字符,但是输入的时候不能用空格分割,也不能输入一个按一次回车,因为空格和回车都算是字符类型,因此只能连着输入三个字符。

使用scanf混合输入 #include int main(void) { int data1; float data2; char data3; printf("请按顺序输入一个整数,小数和字符:\n"); scanf("%d%f%c",&data1,&data2,&data3); printf("你输入的整数,小数和字符是:整数:%d,小数:%f,字符:%c\n",data1,data2,data3); }

上述代码编译运行后,输入整数和输入小数之间可以用空格或者回车相隔,但是输入小数和输入字符之间不能用空格和回车

如果输入整数和输入小数之间也连着,电脑会认为小数是以0.xxxx开头的数字

小结 使用scanf之前最好先使用printf提示用户以什么样的方式来输入。scanf中尽量不要使用非输入控制符,尤其慎用\n。如有必要,应该编写代码对用户的非法输入做适当的处理。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3