c语言中多个scanf怎么输入

作者&投稿:纵阁 (若有异议请与网页底部的电邮联系)
c语言中,printf和scanf的用法?~

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

1、有一个很严重的错误,输入字符数组的两个
scanf("%d %s %c %c",&person[i].num,&person[i].name,&person[i].sex,&person[i].job);
scanf("%s",&person[i].category.position);
2、把这两行中字符数组输入时前面的&符号去掉,对字符数组输入本身就是地址,不要加&,改成这样
scanf("%d %s %c %c",&person[i].num,person[i].name,&person[i].sex,&person[i].job);
scanf("%s",person[i].category.position);
3、其他的也没有什么错误,记着输入时候,那几个值之间用一个空格隔开,用scanf()函数输入的时候,本质是,你给scanf一个地址,这个函数会根据你输入的地址把,输入缓冲区中的数据放在指定地址处
4、像int ,char,double,long,float这些基本类型,再分配空间的时候,只是给他们一个空间,所以用scanf()输入的时候,要加&取地址符号,才能给他们赋值
5、然而char *,char [],这些本身是一块区域的首地址,本身就是地址,所以用scanf时,不用加&因此,输入里面不需要加的只有,person[i].name,person[i].category.position两个,其他的都是基本类型,因此都需要加
扩展资料:
优缺点
1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

C语言的 Hello World 程序
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富

C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6、生成目标代码质量高,程序执行效率高
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7、可移植性好
C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8、表达力强
C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。
C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

//仅使用一次 scanf() 的情况
scanf("%d %d %d",&num1,&num2,&num3); //使用空格分开
/*
输入时,每个数字使用空格分开,例如:1 12 123,等同于:num1 = 1,num2 = 12,num3 = 123。也可以使用逗号分隔,scanf("%d,%d,%d",&num1,&num2,&num3);那么, 输入时,数字之间应使用 ,分隔开,例如:1,12,123.总之,scanf(” “)双引号中修饰符之间缺少什么,输入时就应补什么。*/scanf("%c%c%c",&ch1,&ch2,&ch3); //不使用空格
/*
输入时,读取3个字符,例如:abc,这样等同于:ch1 = 'a',ch = 'b',ch3 =
'c'。但在这里有一个问题,就是连续输入多个 int 数据时,就必须使用换行符了,例如:scanf("%d%d%d",&num1,&num2,&num3);输入时,应该是:1(回车键)
12(回车键)
123(回车键)
之所以要按下回车键,是因为输入 1 时,虽然屏幕上显示 1 ,但是 1 这个字符并没有被程序接收,而是停留在缓冲区,按下回车键之后,才会发送输入。*/
//使用循环
for(n = 0;n < 3;n++)
scanf("%d",num[n]);

c语言中从键盘输入的输入语句最常用的是scanf语句,函数原型为int
scanf(
char
*format,args,...);
功能是从标准输入设备按format指向的格式字符串所规定的格式,输入数据给args所指向的单元.
c++中,可以使用scanf语句和cin(标准输入流)两种方式。标准输入流cin是从键盘向内存流动的数据流,用>>运算符从输入设备键盘取得数据送到输入流cin中。

1、程序运行时,不管有多少个scanf,一定要按scanf()语句规定的格式输入,否则可能会出现错误的结果。
2、编写程序时,遇到多个数据输入,不一定采用多个scanf语句。


C语言中scanf处理输入数据时,遇到什么情况时该数据认为结束
停止对a录入,所以a的值为12 2按指定宽度结束,例如"%3d",只取前3列 3遇到非法输入时。例如:scantf("%c%f",&b,&c) 若这样输入:a 123o.26 本例子中,b得到a,对c输入本该是1230.26,但是把0错打成了o(字母 欧),遇到o属于非法输入,结束对c的录入,所以c得值为123 ...

scanf什么时候用??c语言
将把10 和 20 分别放到 x 和 y 中,t 被放弃,因为 t 在控制串中。 (11)ANSI C 标准向 scanf() 增加了一种新特性,称为扫描集(scanset)。 扫描...(4) scanf中要求给出变量地址,如给出变量名则会出错 如scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。 (5) 在输入多个数值数据时...

C语言中 scanf_s和 scanf 区别是什么
scanf_s()会进行边界检查。2、意思 scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值。...

C语言中,英语的念法
用如果你能从金山词霸上查到这个词,那这个词就是英文原词,可以用金山词霸的读音. 因为C语言的原词就是英文词. 例如: include, float, main C语言里有些词是英文组合词,你可以分别查出它的各部分,按英文读.有些词一部分用了英文词加缩写,例如: scanf, printf,你只能查出它的部分,scan (扫描),...

C语言,编程疑问。 为什么对scan函数的递归调用不成功,需要怎么修改呢...
你scan函数返回一个值,你看看你第二个scan调用返回什么?什么都没返回

C语言中关于scanf语句在循环中发现一个不明白的地方
int a[4];for ( j = 1; j <=4;j++ ){ scanf( "%d",&a[j]);printf ( " %d ", a[j] );} } int a[4] 声明了一个4维的int数组,序号为0-3 但是在输入时候你要求输入a[1]-a[4].但是scan的规则是a[0]开始输入,然后就发生了输入5个数的情况,数组发生了越界 改为 for ...

请问C语言中scanf函数里的%5c 的意思是不是用来输出5个字符?
确实是5个字符,但这个字符是空白符,通常这是作用是用来对齐的,%5c,那么前面4个为空格,第5个为你转义的字符,%-5c则相反,第一个为你转义的字符,后4个为空白符。这种同样适用%5d,%-5d等,例如%5d,输出的数为123,则前面2个为空格加123;若输出的数为12345,则就输出12345,保持原样 ...

ict的Boundary-Scan边界扫描技术
首先定义了组成测试访问端口(TAP)的四(五〕个管脚:TDI、TDO、TCK、TMS,(TRST)。测试方式选择(TMS)用来加载控制信息;其次定义了由TAP控制器支持的几种不同测试模式,主要有外测试(EXTEST)、内测试(INTEST)、运行测试(RUNTEST);最后提出了边界扫描语言(Boundary Scan Description Language)...

分析X-Scan,写出它的使用方法以及配置方法,同时抓包分析其扫描原理。如...
X-Scan中改用“WinPCap 2.3”,建议卸载“WinPCap 3.1 beta”后再使用X-Scan进行扫描。 X-Scan v3.0 -- 发布日期:03\/01\/2004,修正beta版本中已知BUG,对主程序及所有插件进行优化,升级NASL库,支持2.0.10a版本以前的所有NASL脚本;提供简单的开发包方便其他朋友共同开发插件;其他插件正在开发中。 感谢悟休、quack...

c语言中scanf(“%2d%*2d%2d”,&a,&b);若要输入123456789 则变量a...
a=12,b=56;scanf可以指定输入的宽度,比如scanf(“%2d",&a);就是把输入数据的前两位赋值给a。scanf可以用“*”跳过指定的宽度,比如scanf(“%2d%*2d%2d”,&a,&b);就是把输入数据的前两位12赋值给a,然后跳过34两位,最后把下面两位56赋给b。scanf函数遇到空格和非法输入时结束,并且...

东城区19477849280: C语言中要用多个scanf怎么用 怎么这个输入了第一个选择后就没有反应了???(新手勿喷!谢谢解答) -
钦彩蛇胆: scanf("%d\n",&choose); 改为 scanf("%d",&choose); 如果是 scanf("%d\n",&choose); 你的输入应该是 1\n 不是回车,必须要输入字符 \n

东城区19477849280: c语言连续连个scanf,两个scanf之间应该输入什么? -
钦彩蛇胆: 在这里真不好说,其实秉承一个原则,就是scanf录入的时候,最好是中间什么都不要有,就是这种形式: scanf("%s%s%s",a,b,c); 这样子的基本不会错,再就是你要区别一下scanf和scanf_s,可能两者的一点区别会导致一些问题,只能帮你到这里了,加油

东城区19477849280: c语言中,用scanf语句输入多个数据的时候,数据之间是用什么符号间隔开的啊?逗号,还是空格啊? -
钦彩蛇胆: example: scanf("%d%d%d",&a,&b,&c); 你在屏幕中输入时可以这样 1 2 3 也可以这样: 1 2 3

东城区19477849280: c语言怎么输入多个字符串 -
钦彩蛇胆: char str1[20],str2[20]; scanf("%s%s",str1,str2); 这样就可以实现多个字符串的输入,注意几点: 1. 输入的每一个字符串长度应小于定义时的字符数组长度. 2. 输入字符串时,字符串与字符串之间用空格符或者回车换行符隔开.

东城区19477849280: C语言中,用两个scanf,那两个输入值在同一行吗 -
钦彩蛇胆: 用两个scanf,输入的数值可以在同一行,输入时注意两个数之间运用空格分开. 验证: #include <stdio.h> void main(){ int a,b; scanf("%d",&a); scanf("%d",&b); printf("%d %d",a,b); }运行示例: 可见,输入的数值是可以在同一行的. 输入的数值也可以不在同一行,输入第一个数后回车,输入第二个数. 同样用上面的程序验证: 可见,输入的数值也可以不在同一行.

东城区19477849280: C语言中怎样用scanf输入不同行的数据. 比如输入:100 200 120 320 45 49 急用......... -
钦彩蛇胆: 如果用空格 就按照格式就可以了 因为函数scanf是遇到空白符(空格、制表符、换行)结束的 所以你这个就可以用scanf("%d%d%d",&a,&b,&c); 如果你想让输入的内容只是遇到回车才结束 那就用gets函数 具体用法可以看文档

东城区19477849280: 我用C语言scanf输入2个数字是怎么只能收到一个 -
钦彩蛇胆: 代码和输入格式有误. 1、scanf("%d,%d",&a,&b);按照这个格式,输入数据的时候,应该加上逗号.比如说想输入22 33 就应该 22,33. 2、也可以像这样scanf("%d %d",&a,&b);中间用空格隔开,那样就可以直接输入 22 33了. scanf ...

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

东城区19477849280: 怎么在c语言中输入四个数 让他们组成一个千位数 -
钦彩蛇胆: #includeint main(void) { int num[4],ans=0; int i; for(i=0;i<4;i++) //输入四个数 scanf("%d",num+i); for(i=0;i<4;i++) { ans*=10; //通过乘10来移位 ans+=num[i]; } printf("%d\n",ans); return 0; }

东城区19477849280: c语言中怎么连续输入几个字符串 -
钦彩蛇胆: 用gets()函数 或用数组 A[1024]for(i=0;a[i]!='/0')scanf("%c",...

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