scanf格式,scanf是什么意思?
scanf格式,scanf是什么意思?详细介绍
本文目录一览: scanf函数的格式是什么?
scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include
。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
scanf函数原型:
int scanf( const char *format, ... );
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
其调用格式为: scanf("
",
);
函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。
scanf的返回值:
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
scanf("%d,%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
例:使用scanf函数输入数据。
#include
int main()
{
int a,b,c;
printf("输入 a, b, c\n");
scanf("%d,%d,%d", &a, &b, &c);
printf("a = %d b = %d c = %d\n", a, b, c);
fflush(stdin);
return 0;
}
注意上面的scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之间如果有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格、tab键或回车键将各个数据隔开
地址表>
格式化字符串>
printf函数和scanf函数的格式说明都使用什么字符开始?
scanf的格式为scanf("%d",&i);
printf的格式为printf("%d",i);
常用的一般是“%d”整形 “%c”字符型
“%f”浮点型 "%s" 字符串型
注意两者的区别,一个还有&一个不带
常用的一般是“%d”整形 “%c”字符型
“%f”浮点型 "%s" 字符串型
printf函数和scanf函数的格式说明都使用%字符开始。
scanf的格式为scanf("%d",&i);
printf的格式为printf("%d",i);
常用的一般是“%d”整型, “%c”字符型,“%f”浮点型,“%s”字符串型。
扩展资料
scanf函数的功能与printf函数正好相反,执行格式化输入功能。即scanf函数从格式串的最左端开始,每遇到一个字符便将其与下一个输入字符进行“匹配”,如果二者匹配(相同)则继续,否则结束对后面输入的处理。
而每遇到一个格式说明符,便按该格式说明符所描述的格式对其后的输入值进行转换,然后将其存于与其对应的输入地址中。以此类推,直到格式串结束为止。
该函数原型的一般格式如下:int scanf (const char *format, ...);
从函数原型可以看出,同 printf函数相似,scanf函数也是一个“可变参数函数”。同时,scanf函数的第一个参数format也必须是一个格式化串。
除此格式化串之外,scanf 函数还可以有若干个输入地址,且对于每一个输入地址,在格式串中都必须有一个格式说明符与之一一对应。即从格式串的左端第 1 个格式说明符对应第1个输入地址,第2个格式说明符对应第2个输入地址,第3个格式说明符对应第3个输入地址,以此类推。
C语言输入输出格式
在C语言中,输入使用的是scanf函数,scanf函数的格式为scanf(格式控制,地址列表),如scanf("%d"&a)。
输出使用的是printf()函数,printf函数的格式为printf(格式控制,输出表列),如printf("%d\n",a)。在输出时可以在"%"和字母之间插进数字表示最大场宽。可以根据需要输出数字的位数来决定“%”前的数值。
如:%3d表示输出3位整型数, 不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为7,小数点占一位, 不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
扩展资料
C语言输入输出时的规则:
一、格式说明符个数与输入数据个数不相等的情况:
当我们输入数据时,只要没有按回车键,所输入的数据都还存放在缓冲区,并没有存入变量中。按【Enter】键后,scanf()函数才会从缓冲区中取走数据。缓冲区是一个先进先出的队列,即取走数据的时候,遵循先输入的数据先取走的原则。
scanf函数的格式说明符有几个就要取几次数据,只要碰到格式说明符就必须把数据取走,至于是不是要把取走的数据存放起来,就得看数据列表中的数据个数。没取完的数据继续留在缓冲区中。
二、宽度输出的情况:
1、在%和格式字符之间加入一个整数来控制输出数据所占宽度
2、在%和格式字符f之间加入一个“整数1. 整数2”来控制输出数据的格式。
整数1:整个输出数据占的总宽度
整数2:输出实数的小数部分的个数
注意:先用整数2处理小数部分,再用整数1处理整个数据,包括已处理好的小数部分
三、宽度输入的情况:
宽度输入指的是在%和格式说明符d之间加入一个整数。如:scanf("%2d", &x);注意:
1、%d与%1d是不同的,它们具有不同的含义。
2、 当宽度小于数据的实际宽度时,截取指定宽度的部分作为一个数进入缓冲区,再将剩余部分作为另一个数放入缓冲区。
参考资料来源:百度百科——scanf
百度百科——printf()
C语言的scanf语句格式
scanf语句的一般格式如下:
scanf("格式字符串",
地址,…);
scanf语句用"格式字符串"控制键盘读入的方式。"格式字符串"中一般只包括格式说明符,它们与printf语句中的一样,而"地址"是指变量在内存中的位置。我们看看下面的程序实例,它定义了一个int、float、char和char
[]变量,并使用了格式说明符:
程序2-4:
#include
#define
MAX_WORD
20
void
main()
{
int
x;
float
a;
char
ch,
empty;
char
word[MAX_WORD];
printf("Enter
an
integer:
");
scanf("%d",
&x); printf("Enter
a
float:
");
scanf("%f",
&a); fflush(stdin);
//
清空输入缓冲区
printf("Enter
a
character:
");
scanf("%c",
&ch); printf("Enter
a
string:
");
scanf("%s",
word); printf("Your
integer
was:
%d\n",
x);
printf("Your
float
was:
%f\n",
a);
printf("Your
character
was:
%c\n",
ch);
printf("Your
word
was:
%s\n",
word);
}
【酷_酷_币】为您服务...
C语言的scanf语句格式
scanf读取的是当前键盘缓冲区中的数据,而不是用户当前的输入的数据,
所以当键盘缓冲区清空的不及时的话,
会导致读入数据不正确。
在这个代码中就是由于编译系统本身对于键盘缓冲区清空的不及时,
导致scanf读入了上次输入数据时最后输入的回车,做为了本次用户输入,
可以人为的强制进行键盘缓冲区清空,来解决这个问题。
fflush(stdin);//强制进行键盘缓冲区清空语句
这么改:
char sex,*num,*name,*birth,*add;
int age;
printf("student num:");
fflush(stdin);
scanf("%s",num);
printf("student name:");
fflush(stdin);
scanf("%s",name);
printf("student age:");
fflush(stdin);
scanf("%d",&age);
printf("student sex:");
fflush(stdin);
scanf("%c",&sex);
printf("student brith:");
fflush(stdin);
scanf("%s",birth);
printf("student add:");
scanf()是C语言标准库中的输入函数,声明包含在stdio.h文件中,因此要使用该函数,必须加载#include
头文件。当执行到scanf函数时,程序就暂停等待用户输入,该函数只接受变量的地址,格式为&变量名。是一个阻塞式的函数,等用户输入完毕后,则将值赋值给变量,至此函数调用完毕。敲回车键告知计算机键入完毕。
函数原型:int scanf(const char *format,...);
说明:scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
其调用形式为: scanf("
",
);变量地址要求有效,并且与格式说明的次序一致。
使用示例:
//使用scanf函数输入一个字符变量。 char a; scanf(“%c”,&a); //同时输入多个值。 scanf(“%d,%d”,&num1,num2); //在内部不能使用\n转义字符,否则没完没了。 scanf(“%d\n”,&a);
注意:在这里两个占位符之间是,隔开,则要求在输入时也使用逗号隔开如输入1,2。此时为num1=1,num2=2。若内部为“%d#%d”则输入1#2。若内部为“%dy%d”,则输入1y2。如果中间的字符是空格,则在输入时可以用空格隔开,也可以敲tab键或者是回车键作为分隔符隔开,后两者可以看做是由空格组成的。
扩展:格式说明符
转换字符(就是%后跟的部分)
a 读浮点值(仅适用于 C++)
A 读浮点值(仅适用于 C++)
c 读单字符
d 读十进制整数
i 读十进制、八进制、十六进制整数
e 读浮点数
E 读浮点数
f 读浮点数
F 读浮点数(仅适用于 C++)
g 读浮点数
G 读浮点数
o 读八进制数
s 读字符串
x 读十六进制数
X 读十六进制数
p 读指针值
n 至此已读入值的等价字符数
u 读无符号十进制整数
[ ] 扫描字符集合
% 读 % 符号(百分号)
附加格式说明字符表修饰符说明
L/l 长度修饰符 输入"长"数据
h 长度修饰符 输入"短"数据
W 整型常数 指定输入数据所占宽度
* 表示本输入项在读入后不赋值给相应的变量
scanf语句的一般格式如下:
scanf("格式字符串", 地址,…);
scanf语句用"格式字符串"控制键盘读入的方式。"格式字符串"中一般只包括格式说明符,它们与printf语句中的一样,而"地址"是指变量在内存中的位置。我们看看下面的程序实例,它定义了一个int、float、char和char []变量,并使用了格式说明符:
程序2-4:
#include
#define MAX_WORD 20
void main()
{
int x;
float a;
char ch, empty;
char word[MAX_WORD]; printf("Enter an integer: ");
scanf("%d", &x); printf("Enter a float: ");
scanf("%f", &a); fflush(stdin); // 清空输入缓冲区
printf("Enter a character: ");
scanf("%c", &ch); printf("Enter a string: ");
scanf("%s", word); printf("Your integer was: %d\n", x);
printf("Your float was: %f\n", a);
printf("Your character was: %c\n", ch);
printf("Your word was: %s\n", word);
}
【酷_酷_币】为您服务...
void main() { int a,b,c; printf("输入 a,b,c\n"); scanf("%d,%d,%d",&a,&b,&c); printf("a=%d b=%d c=%d\n",a,b,c); fflush(stdin); } scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include
。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。
char sex,*num,*name,*birth,*add; (这句,你的sex后的逗号不对,按我这个)
int age;
printf("student num:");
scanf("%s",num);
printf("student name:");
scanf("%s",name);
printf("student age:");
scanf("%d",&age);
printf("student sex:");
scanf(" %c",&sex); (%c前面加一个空格)
printf("student brith:");
scanf("%s",birth);
printf("student add:");
例:使用scanf函数输入数据。
#include
int main(void)
{
int a,b,c;
printf("Give me the value of a,b,c seperated with whitespaces:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址 [3] ,是一个右值。变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。
这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔。
只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。
(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include
。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。
扩展资料:
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
变量地址>
格式说明字符串>
scanf怎么用?
scanf用途:从键盘输入数据,从键盘得到字符,放到某个变量里。
格式:scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include
。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include
。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
扩展资料:
1、int scanf(const char * restrict format,...);
函数 scanf() 是从标准输入流stdio (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符顺次对应。
空白字符会使scanf函数在读操作中略去输入中的一个或多个空白字符。一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
参考资料:scanf-百度百科
scanf是什么意思?
scanf是c语言中的标准库函数,主要作用是接收用户输入的数据。
scanf是C语言中的输入函数,可以从键盘获得用户输入,和printf输出功能正好相反。scanf的输入格式是多种多样的,使用时需根据情况选择,最常用的是十进制整数型输入%d。
scanf的使用和输入格式
scanf("%d", &c); //输入一个整数并赋值给c。
scanf("%d", &d); //输入一个整数并赋值给d。
scanf("%d,%d", &c, &d); //输入两个整数并分别赋值给c、d。
scanf("%d %d", &c, &d); //输入两个整数并分别赋值给c、d。
前两个scanf:输入一个整数,按下回车键,scanf会读取键盘输入,并把数据赋值给c(或d);后两个scanf:都是一样功能,输入格式不同,对于scanf(),输入数据的格式要和控制字符串的格式保持一致。比如:输入15 24回车,输入15,24回车,同样的把值分别赋给c和d。
c语言中scanf是什么意思,为什么有时候后面写%f,有时候写%e,%lf,%c等等
scanf就是格式输入函数。%是格式说明符,后面的字母是格式字符,scanf函数的格式是:scanf(“%d%d”,&a,&b);
&是取地址符号,这个函数的意思就是从屏幕上输入两个整数,分别存入a,b当然之前肯定要定义一个整形变量:int
a,b;然后在使用scanf函数。。。。简单的说%f就是说格式是小数,%e与%f差不多,%lf是长整形双精度,%c就是字符
提问之前去百度搜下吧,其实等你提问等到回答之后早都搜出来了
计算机执行的是机器码,是0110这样的东西,不是我们写的scanf,printf这些
知识编译器把我们的源码按照一定的规则翻译成了二进制文件
那么说scanf就是人为定义的
是认为规定的
scanf是格式输入函数
那么%f,%e,%c都是限定输入的格式,如果不是规定格式,就会自动的转化的
%f是浮点数,%e也是浮点数,但是使用5.6e+1.2这样子表示的
%c是一个字符型数据
%d十进制
%o八进制
%x十六进制
%1f是限定输入数字整数部分的长度的,比如%2f你输入了
123
那么实际取到的值是12
我们平时用的时候都是用的
while(scanf("%lf",&fnum)!=eof)
这个问题与函数输入函数,scanf()的返回值有关,当需要输入的变量都输入成功时,会返回输入的个数,你只让函数输入一个值,所以返回是1,换成其他就不正确了。如果遇到错误或遇到end
of
file,返回值为eof。所以我的那种写法更通用一些。
是一个输入函数,%d表示整型,%f表示浮点型,懂了没,后面还应该有个&,也就是取址符
scanf是取值 %后表示输入的类型
scanf是C语言中的一个输入函数,意思就是当你从键盘中输入数值按回车后,他会把你输入的数值储存到电脑,至于为什么后面会写%f,%e.%lf,%c那是根据scanf的对象而定的。向float,double,char就分别用%f,%e,%c
scanf()函数的输入方式是什么
正确答案是:C
它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。按格式的要求,每个变量前都要有地址符,故s1和s2前面都需要用到地址符&。A、B、D选项中都不能满足s1、s2前面都有&的要求,所以C为正确答案。用软件运行C选项的代码,编译中0个错误,0个警告,验证C答案正确。
扩展资料:
scanf()是C语言中的一个输出函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include
。
scanf()函数的指定输入格式有很多种,下面是一些比较常用的格式:
%d:读入可选有符号的十进制整数。
%u:读入无符号符号十进制整数。
%a,e,f,g,A,E,F,G: 读入可选有符号浮点数,输入格式应该像strtod函数识别的字符序列一样。
%o:读入可选有符号八进制整数。
%s:读入一个的字符序列,后面会加上空字节,遇到空白字符(\t \r \n 空格等)完成读取。
参考资料:百度百科-scanf
scanf函数主要接收标准输入流,也就是我们熟知的键盘按键,它接受的输入方式是按照格式来定义的,比如接收整数,那么就是%d,接收字符就是%c,接收字符串就是%s。需要注意的事情是scanf无法接收包含有空格的字符串,如果要接收包含空格的字符串可以使用gets函数。