关于c语言scanf的用法

作者&投稿:寸康 (若有异议请与网页底部的电邮联系)
~ 记住一点,scanf认为遇到“非法输入”就结束。
scanf("%2d%f",&a,&b);中第一个格式控制字符2d的意思是读取2位,作为一个整数输入到给对应的变量a的地址中。输入876,当然只读取前2位87。这是2的作用,后面输入对于2来说,相当于非法输入。
对于%f,后面输入的是7
543.0,对于浮点型数据是不可能得到空格的,所以遇到空格,认为是非法输入,结束输入。所以b的值是6,即是6.000000

其实这个问题很有意思,为什么非要传变量的地址而不是直接传变量呢?
仅仅说是规定不能让人信服。我们假设scanf函数可以这样给i赋值:
scanf("%d",
i);而不是scanf("%d",
&i);
有的人可以说我可以在scanf函数内在取i的地址赋值啊,不也行吗?
其实问题就出在这儿,因为c语言是传值的,那么scanf函数内部是不能取得实参i的地址的,取得的是形参的地址而已,那么赋值的时候是给形参赋值了,i并没有改变。
即等价于一个形参temp,它是一个临时变量,其值等于i,但&temp的值与&i的值不同。
所以给实参i赋值失败。
您应该明白为什么要传地址了吧,而printf的时候又不要传地址了。

scanf的第二个参数被定义为一个指针(就是一个内存地址)
&运算计算出i的内存地址,然后作为scanf的参数
如果用i的话,就是把i的值当作内存地址作为scanf的参数
显然i=0x00000000,不是一个有效的内存地址(c语言保证0永远不会是任何有效数据的地址)
函数scanf得不到正确的内存地址,难道你觉得它猜得出i的地址吗

函数就是这样设计的
因为C语言的函数都是传值的,函数调用是不可能改变实参的值的
int
i;
foo(i);//这个是不可能改变i的值的
i=foo(j);//重新赋值
foo(&i);//传i的地址,可以改变i的值


c语言中scanf的用法
1、 scanf(输入控制符, 输入参数);功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。2、scanf(输入控制符非输入控制符, 输入参数),这种用法几乎是不用的。拓展:C语言是什么 C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层...

c语言中的scanf是什么意思
scanf是C语言的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 拓展:C语言是什么 C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境...

c程序中scanf是什么意思?
scanf()是C语言中的一个输入函数,属于格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h...

scanf在c语言中的作用
在C语言中,scanf扮演着至关重要的角色,它是标准库函数,专门用于接收用户输入的数据。这一功能与printf输出数据的功能形成鲜明对比。scanf的输入格式非常灵活,可以根据需要选择,例如,最常见的就是用于接收十进制整数的输入,格式为%d。使用scanf时,可以明确指定变量来接收输入。例如,要输入一个整数并...

c语言中scanf语句的用法及规则
c语言中scanf语句的用法及规则 在C语言中,scanf()函数用于从标准输入(通常是键盘)读取数据,并将其存储到指定的变量中。scanf()函数通常与格式化字符串一起使用,格式化字符串指定了要读取的数据类型和格式。scanf()函数按照格式化字符串中指定的格式读取数据,并将其存储到指定的变量中。scanf()函数的...

c语言scanf的用法
c语言scanf的用法是c语言scanf中格式控制字符串后面是变量地址。变量名。但在使用s格式输入字符数组时,变量名本身就是字符串的首地址,不需要加地址运算符。scanf函数没有计算功能,因此输入的数据只能是常量,不能是表达式,scanf函数的格式控制字符串也是以%开始,以一个格式字符结束,中间可以插入附加的...

c语言中scanf是什么意思(scanf什么时候用c语言)
scanf是scanformat的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和printf的功能正好相反。scanf什么时候用c语言 scanf的意思是把输入的值给送到地址,因此,如果参数已经是地址了,那么不需要&,否则需要用&取一下地址 scanf格式输入函数 函数作用:按照变量在内存的地址将变量值存进去。一般格式:...

c语言scanf(输入函数的使用方法和注意事项)
scanf函数是C语言中的输入函数,用于从标准输入设备(例如键盘)读取数据。它是C语言中最常用的输入函数之一,也是处理输入数据的重要工具。scanf函数的使用方法 scanf函数的语法如下:```intscanf(constchar*format,...);```其中,format是一个字符串,用于指定输入数据的格式。...表示可变参数,用于...

c语言scanf什么意思?
C语言中scanf是标准库函数,主要用来接收用户输入的数据。函数格式:int scanf(char *format, args, ...);功 能:从标准输入设备按format指定格式输入数据给args所指向的内存单元 返 回 值 :读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0 举例如下:int a;scanf("%d", &a); ...

C语言cin和scanf有什么区别啊?
c\/c++ 语言中cin与scanf区别为:性质不同、操作效率不同、取数据不同。一、性质不同 1、cin:cin是标准化输入,包含在头文件<iostream>中。2、scanf:scanf是格式化输入,包含在头文件<stdio.h>中。二、操作效率不同 1、cin:cin先把要输入的东西存入缓冲区,再输入,导致的输入操作效率稍低,但...

淮阳县13513442630: C语言scanf用法 -
茌蓓亿美: scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include .(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include .)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中.scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF.

淮阳县13513442630: c语言中scanf函数的用法 -
茌蓓亿美: 比如int i; scanf("%d",&i);//&是取地址运算符,取i的地址 又如int a[10]; scanf("%d",a);//数组名本身就是一个数组的首地址 总结就是scanf(" 格式控制", 地址);

淮阳县13513442630: C语言中scanf的使用 -
茌蓓亿美: scanf("a=%d b=%d",&a,&b);scanf(" x=%f y=%e",&x,&y);scanf(" c1=%c c2=%c",&c1,&c2); “”里面的是输入的格式,也就是说你的写法待会要输入的就是a=10 b=10 x=1.1.....为什么是这样呢~ 因为你的格式写成这样了~而且不是连着写的~那么必然你是必须要加空格在里面的~scanf(" x=%f y=%e",&x,&y); 这句话的空格里面第一个字符就是空格

淮阳县13513442630: c语言scanf的用法, -
茌蓓亿美: 在执行第二个scanf的时候其实是接收了一个回车符,打印的时候看不到,你在第二个scanf之前加一个getchar();或者在%c之前加一个空格就好使了.

淮阳县13513442630: C语言中的scanf函数怎么用呀? -
茌蓓亿美: scanf("字符串,确定输入的类型",变量地址); example: int a; scanf("%d",&a);%d,%f,%lf,%c,%s分别表示int,float,double,char,字符串.根据你输入变量的类型选择.

淮阳县13513442630: 关于scanf函数和printf函数的用法与区别(菜鸟级提问!!) -
茌蓓亿美: 1.区别:scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>.它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中.而printf()函数是格式化输出函数, 一般用于向...

淮阳县13513442630: c语言中的scanf 函数的用法 -
茌蓓亿美: 输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&.scanf("%s",s);改为scanf("%s",&s); scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);格式控制字符串包含:格式控...

淮阳县13513442630: C语言scanf函数用法 -
茌蓓亿美: scanf("%f%f%f",&a,&b,&c);这样即可将输入的三个数字依次赋值给a,b,c三个变量,在输入数字时,用空格或者回车分隔.

淮阳县13513442630: C语言 scanf的用法 -
茌蓓亿美: scanf函数必须原样输入,现在你弄个\n,一就个文化换行符了,.所以sanf不能有换行,要不就要多输入一个,看到很多人都是出现这种情况

淮阳县13513442630: C语言中,scanf应该怎样运用? -
茌蓓亿美: 这是一个格式化输入函数,即输入数据时可以指定格式. 如:1.输入一个整数到int型变量a:scanf("%d",&a);这里“%d”表示以int型格式接收用户输入的数据到int型 变量a.2.scanf("%c",&b);表示以字符型char格式接收用户输入的数据存到char型变量b.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网