您当前的位置:首页 > 时尚 > 内容

c语言scanf,c语言scanf具体代码

关于【c语言scanf】,c语言scanf具体代码,今天向乾小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

程序是人机交互的媒介,有输出必然也有输入,我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以从键盘获得用户输入:

scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。

getchar()、getche()、getch():这三个函数都用于输入单个字符。

gets():获取一行数据,并作为字符串处理。

c语言scanf,c语言scanf具体代码

scanf() 是最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,大家都要有所了解。

scanf()函数

scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。

举例:

#include<stdio.h>

int main()

{

int x=0;

printf("1 1=?\n");

scanf("%d",&x); //格式:scanf("格式控制字符串",&地址列表);

if(x!=2)

对于 scanf(),输入数据的格式要和控制字符串的格式保持一致。

其实 scanf 和 printf 非常相似,只是功能相反罢了:

scanf("%d %d", &a, &b); // 获取用户输入的两个整数,分别赋值给变量 a 和 b

printf("%d %d", a, b); // 将变量 a 和 b 的值在显示器上输出

它们都有格式控制字符串,都有变量列表。不同的是,scanf 的变量前要带一个&符号。

&称为取地址符号,也就是获取变量在内存中的地址。

数据是以二进制的形式保存在内存中的,字节(Byte)是最小的可操作单位。

为了便于管理,我们给每个字节分配了一个编号,使用该字节时,只要知道编号就可以,

就像每个学生都有学号,老师会随机抽取学号来让学生回答问题。字节的编号是有顺序的,从 0 开始,接下来是 1、2、3……

下图是 4G 内存中每个字节的编号(以十六进制表示):

c语言scanf,c语言scanf具体代码

这个编号,就叫做地址(Address)。

int a;会在内存中分配四个字节的空间,我们将第一个字节的地址称为变量 a 的地址,也就是&a

的值。对于整数、浮点数、字符,都要使用 & 获取它们的地址,scanf 会根据地址把读取到的数据写入内存。

再来看一个 scanf 的例子:非常重要

#include <stdio.h>

int main()

{

int a, b, c;

scanf("%d %d", &a, &b);

printf("a b=%d\n", a b);

scanf("%d %d", &a, &b);

printf("a b=%d\n", a b);

scanf("%d, %d, %d", &a, &b, &c);

printf("a b c=%d\n", a b c);

scanf("%d is bigger than %d", &a, &b);

printf("a-b=%d\n", a-b);

return 0;

}

运行结果:

c语言scanf,c语言scanf具体代码

第一个 scanf() 的格式控制字符串为"%d %d",中间有一个空格,而我们却输入了10 20,中间有多个空格。

第二个 scanf() 的格式控制字符串为"%d %d",中间有多个空格,而我们却输入了100 200,中间只有一个空格。这说明 scanf() 对输入数据之间的空格的处理比较宽松,并不要求空格数严格对应,多几个少几个无所谓,只要有空格就行。

第三个 scanf() 的控制字符串为"%d, %d, %d",中间以逗号分隔,所以输入的整数也要以逗号分隔。

第四个 scanf() 要求整数之间以is bigger than分隔。

用户每次按下回车键,程序就会认为完成了一次输入操作,scanf() 开始读取用户输入的内容,并根据格式控制字符串从中提取有效数据,只要用户输入的内容和格式控制字符串匹配,就能够正确提取。

本质上讲,用户输入的内容都是字符串,scanf() 完成的是从字符串中提取有效数据的过程。

最后需要注意的一点是,scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。

‍这个例子你搞懂了,简单的scanf用法就没问题了,所以认真看完思考。

scanf() 格式控制符汇总

格式控制符 说明

%c读取一个单一的字符

%hd、%d、%ld读取一个十进制整数,并分别赋值给 short、int、long 类型

%ho、%o、%lo读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型

%hx、%x、%lx读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型

%hu、%u、%lu读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型

%f、%lf读取一个十进制形式的小数,并分别赋值给 float、double 类型

%e、%le读取一个指数形式的小数,并分别赋值给 float、double 类型

%g、%lg既可以读取一个十进制形式的小数,也可以读取一个指数形式的小数,并分别赋值给 float、double 类型

%s读取一个字符串(以空白符为结束)

本文关键词:c语言scanf什么意思,c语言scanf的用法,c语言scanf返回值被忽略怎么解决,c语言scanf可以作为标识符吗,c语言scanf输入格式例子。这就是关于《c语言scanf,c语言scanf具体代码》的所有内容,希望对您能有所帮助!更多的知识请继续关注《犇涌向乾》百科知识网站:http://www.029ztxx.com!


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 阅读批注怎么做(阅读批注怎么做六年级)

下一篇: 十大极限运动排名(挑战自我,极限运动让你更加勇敢)



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号