C语言中关于scanf的使用

作者&投稿:蓬良 (若有异议请与网页底部的电邮联系)
如何在C语言中用scanf输入数组~

#include
main()
struct
int num;
char name[20];
char sex;
int age;
stu[5];
int i;
for(i=0;i<5;i++)
printf("请输入信息
");
scanf("%d",&stu[i].num);
scanf("%s",&stu[i].name);
scanf("%c",&stu[i].sex); //在%c之前加一个空格
scanf("%d",&stu[i].age);
for(i=0;i<5;i++)
printf( "*%s*",stu[i].name);

扩展资料:
函数 scanf() 是从标准输入流stdin [1] (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
参考资料来源:百度百科-scanf

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

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



scanf是C/C++的输入库函数,功能十分强大,但输入要求有很多讲究,如果全写出来就是一本不薄的小册子,所以我们只好用到传到功能就去熟悉什么功能。scanf在%d控制下只接收0~9十个符号,遇到这十个之外的符号就认为前面的输入有效而停止,所以scanf("%d%d",&a,&b)在%d%d控制下若输入"123,",那么a得到整数123就结束了,b得到不到任何值,所以b就是随机乱码值了——因为碰到","后被解释为你的输入结束了!

你的这个代码:

#include<stdio.h>
main()
{
int a,b;
scanf("%d %d",&a,&b); //接受2个数值
printf("a = %d,b = %d
",a,b);
}

代表接受2个数值,发现第一个不是数值的字符时截断。也就是说,如果你输入12345空格,那么12345就被识别为第一个数值了,后面直到再出现是数值时才截断,中途不管你输入多少个非字符都不会触发第二个%d



系统不会自动忽略逗号的,只会跳过空格,回车,和tab,如果那样你应该在两个数字直接输入一个逗号。
其实scanf的格式符那里不应该写乱七八糟符合。

tab 回车 空格 都属于空字符 c优化处理有什么不好吗 这一点不是应该纠结的地方


scan什么意思
scan,作为一个英文词汇,其在语言中扮演多重角色,既可以作为及物动词,也可作为不及物动词和名词使用。作为及物动词时,它涵盖了诸如“扫描、浏览、细看、详细调查”等含义;若作为不及物动词,其含义则简化为“扫描、扫掠”。作为名词时,scan的含义扩展为“扫描、浏览、审视或细致观察”。在汽车领...

c语言中scan()什么意思
函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致 scanf()函数返回成功赋值的数据项数,读到文件末尾出错...

关於C语言中 scan的一个问题
有的时候回车会被程序读入,不方便管理。也就是说:scanf()和getchar()函数是从输入流缓冲区 中读取值的,而并非从键盘(也就是终端)缓冲区读取。而读取时遇到回车(\\n)而结束的,这个\\n会一起读入输入流缓冲区的,所以第一次接受输入时取走字 符后会留下字符\\n,这样第二次的读入函数直接从缓冲...

scan是c语言关键字吗
不是C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数。在使用他们时,千万不要误认为他们是C语言提供的“输入输出语句”。printf和scanf不是C语言的关键字,而只是函数的名字。C提供的函数以库的形式存放在系统中,...

如图,c语言做了个for循环scan(),结果为什么顺序会跳?
一、在每次输入完毕后,用scanf或getchar或getch把回车符号接收掉。二、在每次输入完毕后,用fflush清除输入缓冲区。下面是演示代码:include<stdio.h> int main(){ int i;char c;\/\/方法一:for(i=0;i<5;++i,scanf("%c",&c))\/\/方法二:for(i=0;i<5;++i,getchar())\/\/方法三:for(...

为何c语言中% c、% s、% d、% s的意思是什么?
"%c, %s, %d"这些在C语言中 代表输入或输出格式 经常应用于printf( ) 和scanf( ) 两个函数中。print 是打印,就是输出的意思,f是format 格式的意思。scan 是扫码,就是输入的意思,f是format 格式的意思。c代表 字符格式,%s 代表字符串格式,%d d代表十进制整数格式。===希望我的回答对你...

skimming和scanning用英文解释
skim的英式读法是[skɪm];美式读法是[skɪm]。作及物动词意思有撇去;略读;掠过;滑过。作不及物动词意思有掠过;表面凝结;<俚>瞒报。作名词意思有浮沫;略读;脱脂物。2、scanning意思是跳读,迅速浏览文章找到细节点,是scan的动名词形式。如:These messages then go on to anti...

请问sas中scan函数如何使用?
scan函数: scan(s,n,"char")表示从字串string中以char为分隔符提取第n个字串。功能(function):从字符表达式s中搜取给定的n个单词 语法(syntax)1、scan(s,n) n为正数时,从字符s末尾提取n个字符 2、scan(s,n) n为负数时,从字符s开始提取n个字符 3、scan(s,n<,list-of-delimiters>)如果...

visual foxpro程序设计语言中 locate与scan endscan区别,average_百度...
locate for 条件:是按照条件从第一条记录开始寻找匹配记录,结果就是记录指针指向第一个符合条件的记录上。average是求属性的平均数,类似于sum,可以在后面跟 to 把结果存放到变量中。而scan类似一条循环语句

ruby编程语言中,怎么将扫描(scan)后的结果计算总数?
File.read("<file-name>").scan(\/[01]\/).size # => 0\/1的数目

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

黄石市18812618727: 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); 这句话的空格里面第一个字符就是空格

黄石市18812618727: c语言scanf的用法, -
隗晓健脾: 在执行第二个scanf的时候其实是接收了一个回车符,打印的时候看不到,你在第二个scanf之前加一个getchar();或者在%c之前加一个空格就好使了.

黄石市18812618727: C语言中的scanf函数怎么用呀? -
隗晓健脾: scanf("字符串,确定输入的类型",变量地址); example: int a; scanf("%d",&a);%d,%f,%lf,%c,%s分别表示int,float,double,char,字符串.根据你输入变量的类型选择.

黄石市18812618727: c语言中的scanf语句应用 -
隗晓健脾: scanf全部改成: scanf("%d",&n);自己去网上好好看看scanf的函数说明.

黄石市18812618727: C语言scanf函数用法 -
隗晓健脾: scanf("%f%f%f",&a,&b,&c);这样即可将输入的三个数字依次赋值给a,b,c三个变量,在输入数字时,用空格或者回车分隔.

黄石市18812618727: c语言中scanf函数的用法 -
隗晓健脾: 比如int i; scanf("%d",&i);//&是取地址运算符,取i的地址 又如int a[10]; scanf("%d",a);//数组名本身就是一个数组的首地址 总结就是scanf(" 格式控制", 地址);

黄石市18812618727: c语言中如何利用scanf输入负数 -
隗晓健脾: C语言中用scanf()输入负数和输入整数是一样的,举个例子int a;scanf(&a);把输入的数存入变量a中 , 这个int就是有符号整形数,既可以是负数也可以是正数, 如果你定义成unsigned int a ;那么就只能输入正数了,因为是无符号的也就是范围是大于等于0的.

黄石市18812618727: c语言 怎样用scanf输入数组变量? -
隗晓健脾: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15#include<stdio.h> voidmain() {inta[10], i;// 输入10个数,放入数组for(i=0; i<10; i++){scanf("%d", &a[i]);}// 输出for(i=0;i<10;i++){printf("%d\n", a[i]);} } 用循环语句实现

黄石市18812618727: c语言中怎样用scanf()读入带空格的字符串 -
隗晓健脾: 现在gcc中gets()不让用了,可以使用 char str[100]; fgets(str,100,stdin);//stdin键盘输入 fputs(str,stdout);//输出或者: char str[100]; scanf("%[^\n]",str);//遇到\n换行符停止 printf("%s\n",str);输出

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