关于scanf的用法

例如以下代码#include<stdio.h>#include<math.h>intmain(){inta,b;b=scanf("%d",&a);printf("ther... 例如以下代码
#include<stdio.h>
#include<math.h>
int main()
{
int a,b;
b=scanf("%d",&a);
printf("the result is %d",b);
}
请问假如是以上例子,什么情况下输入打印出的数据为0?
很多大程序用到这样的scanf赋值,意义是什么?
展开
 我来答
肥仙女a
高粉答主

2019-07-19 · 我是游戏小达人,专注于分享游戏资讯。
肥仙女a
采纳数:477 获赞数:115605

向TA提问 私信TA
展开全部

scanf 函数最主要的用法是:

scanf("输入控制符", 输入参数);

函数原型:int scanf(const char * restrict format,...);

函数 scanf() 是从标准输入流stdin (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。


扩展资料:

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

发展:

使用scanf函数进行输入,必须指定输入的数据的类型和格式,不仅繁琐复杂,而且很容易出错。C++保留scanf只是为了和C兼容。

以便过去用C语言写的程序可以在C++的环境下运行。C++的编程人员都愿意使用cin进行输入,很少使用scanf。

但是scanf有一个明显的优点,速度比cin函数快。

参考资料:

百度百科-scanf (计算机语言函数)

Sigma-Aldrich
2018-06-11 广告
scanf_s是visual studio搞出来的那套。如果你的代码不是在VS编译的自然会报错。 如果只用scanf那么在VS编译是warning… 还有,你声明char *a的时候要先分配内存,不然会出现各种未知错误。 要么就是用char... 点击进入详情页
本回答由Sigma-Aldrich提供
往事随风12584
2019-10-25 · TA获得超过1.2万个赞
知道答主
回答量:69
采纳率:0%
帮助的人:1.7万
展开全部

scanf()是C语言中的一个输入函数。

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

扩展资料:

使用scanf函数的注意问题:

1、在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。

2、对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

3、 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

4、scanf函数中没有类似printf的精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

5、scanf中要求给出变量地址,如给出变量名则会出错

如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。

6、 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

7、在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

参考资料来源:百度百科-scanf (计算机语言函数)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kai天天向上
推荐于2019-08-03 · TA获得超过1308个赞
知道答主
回答量:66
采纳率:83%
帮助的人:1.9万
展开全部

具体如下:

1、记住一点,scanf认为遇到“非法输入”就结束。

2、scanf("%2d%f",&a,&b);中第一个格式控制字符2d的意思是读取2位,作为一个整数输入到给对应的变量a的地址中。输入876,当然只读取前2位87。这是2的作用,后面输入对于2来说,相当于非法输入。

3、对于%f,后面输入的是7 543.0,对于浮点型数据是不可能得到空格的,所以遇到空格,认为是非法输入,结束输入。所以b的值是6,即是6.000000。

4、scanf函数是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgao622
2012-12-04 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
scanf ("%d,%d",&a,&b);

a,b 都为 int 型变量,格式化输入时用 %d,
而 %f是 float类型的变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-04
展开全部
scanf叫做格式化输入,所以呢,你的输入内容一定要和引号里的完全一致,有,那你输入也要有, 有空格那你的输入内容也必须包括空格。类型一定要匹配。提示要自己printf,没有就是对的,应该有个_再闪的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式