C语言关于scanf用法的问题

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

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

只有在需要格式输入和格式输出时,我们才要求写数字。(这样可以规范输入,同时可以按格式输出)。如果没有这方面的要求,直接去掉数字,
即可。另外
空格
表示下一个变量的读入。

%2d---a:在876这个数字中取两位赋给a于是a=87,同时把876中的6自动划为下一个数字,%f---b把87后面的数字给b也就是6于是b=6
lz把2去掉就可以了


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

C语言中 scanf_s和 scanf 区别是什么
因为带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。3、scanf_s()参数与scanf()不同 例如scanf(“%s”,&name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小。

c语言中scanf函数的用法有几种?
选择答案A,因为题目中的A选项“abc”是一个字符串所以说A选项不能够正确的赋值给x变量。所以题目的答案选择的是A选项。选项解析:B选项虽然是一个整形的数,但是可以赋值给x变量,发生了数据类型的转换,C选项输入的是一个字符,那么字符有一个ASCII码值,相当于将‘A’的ASCII码值赋值给x变量。C...

c语言中scanf是什么意思(scanf什么时候用c语言)
都作为 有效字符输入 (4)在输入数据时,遇以下情况时认为该数据结束。①遇空格,或按“回车”或“跳格”(Tab)键;②按指定的宽度结束,如“%3d”,只取3列;③遇非法输入。c语言中scanf是什么意思和scanf什么时候用c语言的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

C语言中的scanf是什么意思
而Java则进一步简化了操作,以提高安全性和易用性,尽管其运行效率可能略逊于C++\/C。总的来说,C、C++和Java作为同一语言家族的重要成员,各自在不同的使用场景下发挥着重要作用,并长期占据编程语言使用排行榜的前列。如果你想深入了解scanf函数,可以查阅百度百科关于C语言的相关资料。

scanf在c语言中的作用
scanf在c语言中的作用是接收用户输入的数据。C标准函数库是所有符合标准的头文件的集合,以及常用的函数库实现程序,例如I\/O输入输出和字符串控制。不像这三种COBOL、Fortran和PL\/I等编程语言,在C语言的工作任务里不会包含嵌入的关键字,所以几乎所有的C语言程序都是由标准函数库的函数来创建的。C语言...

C语言中的scanf是什么意思
值得注意的是,scanf是C语言结构化编程的一部分,它将高级语言的清晰结构与低级语言的实用性结合,提供了灵活的代码单元。此外,C语言代码可以在多种操作系统和硬件平台上运行,如Windows、DOS和UNIX,特别适合需要直接操作硬件的场合,尽管这增加了潜在的安全风险。C++在指针操作上做了改进以提高安全性,而...

scanf(C语言标准输入函数)
在C语言中,scanf函数是一种标准输入函数,用于从标准输入设备(通常是键盘)读取数据。scanf函数可以读取各种类型的数据,包括整数、浮点数、字符和字符串等。在本文中,我们将介绍scanf函数的使用方法和注意事项。scanf函数的基本用法 scanf函数的基本用法如下:```c scanf("格式化字符串",```其中,...

c语言scanf用法c语言scanf用法介绍
1、C语言中scanf函数的用法主要是通过终端格式化输入函数,从标准输入流stdin中读取输入信息的通用子程序,可以说明的格式读入多个字符,并保存在相应地址的变量中,也可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。2、scanf函数的格式说明:读浮点值(仅存于C99),c读单字符,d读十进制...

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

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

白河县13683973581: c语言scanf的用法, -
枝兰珍德: 在执行第二个scanf的时候其实是接收了一个回车符,打印的时候看不到,你在第二个scanf之前加一个getchar();或者在%c之前加一个空格就好使了.

白河县13683973581: C语言中关于scanf的问题 -
枝兰珍德: #include"stdio.h" main() { int a; printf("%d",scanf("%d",&a)); // 这个很明显的告诉我们 scanf()返回的并非我们输入的数值,而返回的是输入了几个数字,这里只输入了一个数 所以返回值为1 如果改为 scanf("%d",&a); printf("%d",a); 则是把我们输入的值A存储在内存中,通过printf()语句显示出来 // }

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

白河县13683973581: 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); 这句话的空格里面第一个字符就是空格

白河县13683973581: c语言中scanf函数的用法 -
枝兰珍德: 比如int i; scanf("%d",&i);//&是取地址运算符,取i的地址 又如int a[10]; scanf("%d",a);//数组名本身就是一个数组的首地址 总结就是scanf(" 格式控制", 地址);

白河县13683973581: c语言中的scanf 函数的用法 -
枝兰珍德: 输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&.scanf("%s",s);改为scanf("%s",&s); scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);格式控制字符串包含:格式控...

白河县13683973581: C语言关于scanf函数问题
枝兰珍德: 第一个问题,因为你的scanf函数使用了域宽来指定读入的格式.所谓域宽,就是说读入的时候把某个宽度内的值付给某变量.那么.你第一个参数读入规则是%3c,意思是设置域宽为3,读入一个char型数据.你输入的是abcde.那么前面的abc将作为第一个参数给一个char型数据.而char型数据只需要一个字符,所以a就给了c1,其间的bc被忽略.后面同理了.第二个问题,楼上大致说明白了.不解释.

白河县13683973581: 求问一下关于c语言scanf函数的一些问题,就是说输入数据时,到底应该用什么分割,我们老师说用空格 -
枝兰珍德: scanf的输入方式完全要看代码的书写方式了.先来讲一下scanf的输入原理吧: 1、scanf输入流的概念,当执行到scanf函数时,会检查输入流,如果为空,则要求用户输入.如果不为空,则根据scanf的格式化参数从输入流中读取 2、%d 用来...

白河县13683973581: 有关C语言的scanf输入问题 -
枝兰珍德: 假定 scanf("%f%e",&a,&y); 应当是 scanf("%f%e",&x,&y);--- 用的都是 scanf(), 可以看成:scanf("a=%d b=%d %f %e %c %c",&a,&b,&x,&y,&c1,&c2); 简单地 用 1行 文字拍入:a=3 b=7 8.5 71.82e0 A a 输出:printf("a=%d b=%d %f %e %c %c",a,b,x,y,c1,c2);

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