700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言scanf怎么输入字母 C语言scanf输入格式printf输出格式

C语言scanf怎么输入字母 C语言scanf输入格式printf输出格式

时间:2020-07-24 03:17:19

相关推荐

C语言scanf怎么输入字母 C语言scanf输入格式printf输出格式

1. 转化说明符

%a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c个字符

%d个有符号十进制整数

%f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法]%g(%G)浮点数不显示无意义的零“ 0”“

%i有符号十进制整数(与%d相同)%u无符号十进制整数

%o八进制整数,例如0123

%x(%X)十六进制整数0f(0F)例如0x1234%p指针%s字符串%%“%”

2. 徽标

左对齐: “-”,例如“%-20s”右对齐: “ +”,例如“%+ 20s”

空格: 如果符号为正,则将显示一个空格,如果符号为负,则将显示“-”,例如“%6.2f”. #: 对c,s,d,u类无效;对于o类,在输出时添加前缀o;对于x类,将0x添加到输出中;

对于e,g,f类型,仅当结果为小数时才给出小数点.

3. 格式字符串(格式)

[标记] [最小输出宽度] [. [精度] [长度]类型“%-md”: 左对齐,如果m小于实际值,则输出为实际值.

“%m.ns”: 输出m位,从左侧开始输入字符串n位,当n> m或m省略时,在左侧填充空格m = n

例如“%7.2s”输入中国

输出“ CH”“%m.nf”: 输出浮点数,m为宽度,n为小数点右边

例如“%3.1f”输入3852.99

输出3853.0长度: h为短整形量,l为长整形量

printf格式控件的完整格式: %-0 m.n l或h格式字符

以下是格式说明的每个组成部分的说明:

①%: 表示格式描述的开始符号,必不可少.

②-: 是-表示左对齐输出,如果省略,则表示右对齐输出. ③0: 0表示指定的槽位已填充0,如果省略,则表示指定槽位未填充.

④m.n: m表示字段宽度,即相应的输出项在输出设备上占据的字符数. N代表准确性. 用于描述输出实数的小数位数. 指定n时,隐含的精度为n = 6位数字.

⑤l或h: l整数类型是long类型,实数类型是double类型. h用于将整数类型的格式字符修改为短型.

scanf函数称为格式输入函数,即,数据以用户指定的格式从键盘输入到指定的变量中.

scanf函数是标准库函数c语言中printf输出格式,其函数原型位于头文件“ stdio.h”中. 与printf函数一样,C语言也允许在使用scanf函数之前不包括stdio.h文件. scanf函数的一般形式为:

scanf(“格式控制字符串”,地址表列);

其中,格式控制字符串具有与printf函数相同的功能,但是它无法显示非格式字符串,即无法显示提示字符串. 每个变量的地址在地址表列中给出. 地址由地址运算符“&”和变量名组成.

例如: &a,&b分别代表变量a和变量b的地址.

此地址是编译系统分配给内存中变量a和b的地址. 在C语言中,使用了地址的概念,这与其他语言不同. 应该区分变量值和变量地址这两个不同的概念. 变量的地址由C编译器系统分配,用户无需关心特定的地址.

格式字符串格式字符串的一般格式为:

%[*] [输入数据宽度] [长度]类型

带有方括号[]的项目是可选的. 每个项目的含义如下.

1)类型

表示输入数据的类型,其格式字符和含义如下表所示.

设置字符含义

d输入一个十进制整数

o输入八进制整数

x输入十六进制整数

u输入无符号十进制整数

f或e输入实数(十进制或指数形式)

c输入一个字符

输入字符串

2)“ *”符号

用于指示输入项目. 读入后,未分配相应的变量,即跳过输入值. 如:

scanf("%d%*d%d",&a,&b);

scanf("%d%*d%d",&a,&b);

当输入为: 123时,将1分配给a,跳过2,将3分配给b.

3)宽度

使用十进制整数指定输入宽度(即字符数). 例如:

scanf("%5d",&a);

scanf("%5d",&a);

输入12345678仅会将12345分配给变量a,其余部分将被截断.

另一个例子:

scanf("%4d%4d",&a,&b);

scanf("%4d%4d",&a,&b);

输入12345678会将1234分配给a,将5678分配给b.

4)长度

长度格式字符为l和h,l表示输入长整数数据(例如%ld)和双精度浮点数(例如%lf). h表示输入短整数数据.

使用scanf函数时,还必须注意以下几点:

scanf函数中没有精确控制,

例如: scanf(“%5.2f”,&a);是非法的. 您不能使用此语句输入带两位小数的实数.

在scanf中需要变量地址. 如果指定了变量名,则会发生错误.

如果scanf(“%d”,a);是非法的,应将其更改为scnaf(“%d”,&a);合法.

输入多个数值数据时,如果格式控制字符串中没有非格式字符作为输入数据之间的间隔,则可以使用空格,TAB或回车作为间隔. 当C编译器遇到空格,TAB,回车或非法数据时(例如,当为“%d”输入“ 12A”时,A是非法数据),则认为数据已结束.

输入字符数据时,如果格式控制字符串中没有非格式字符,则所有输入的字符均视为有效字符.

示例:

scanf("%c%c%c",&a,&b,&c);

scanf("%c%c%c",&a,&b,&c);

输入d,e和f,将d分配给a,将d分配给b,将e分配给c. 仅当输入为def时,才能将“ d”分配给a,将“ e”分配给b,将“ f”分配给c.

如果在格式控件中添加空格作为空格,例如:

scanf("%c%c%c",&a,&b,&c);

scanf("%c%c%c",&a,&b,&c);

输入时,可以在每个数据之间添加空格.

示例;

#include

intmain(void){

chara,b;

printf("inputcharactera,b\n");

scanf("%c%c",&a,&b);

printf("%c%c\n",a,b);

return0;

}

#include

intmain(void)

{

chara,b;

printf("inputcharactera,b\n");

scanf("%c%c",&a,&b);

printf("%c%c\n",a,b);

return0;

}

因为scanf函数“%c%c”中没有空格,所以输入MN,结果输出仅为M. 当输入更改为MN时,可以输出MN的两个字符.

示例

#include

intmain(void){

chara,b;

printf("inputcharactera,b\n");

scanf("%c%c",&a,&b);

printf("\n%c%c\n",a,b);

return0;

}

#include

intmain(void)

{

chara,b;

printf("inputcharactera,b\n");

scanf("%c%c",&a,&b);

printf("\n%c%c\n",a,b);

return0;

}

此示例表明,当scanf格式控制字符串“%c%c”之间存在空格时,输入数据之间可能存在空格.

5)如果格式控制字符串中包含非格式字符,则在输入时还必须输入非格式字符.

示例:

scanf("%d,%d,%d",&a,&b,&c);

scanf("%d,%d,%d",&a,&b,&c);

非格式字符“,”用作间隔字符,因此输入应为: 5、6、7. 另一个例子:

scanf("a=%d,b=%d,c=%d",&a,&b,&c);

scanf("a=%d,b=%d,c=%d",&a,&b,&c);

输入应为: a = 5,b = 6,c = 7.

6)如果输入数据和输出类型不一致,尽管编译可以通过c语言中printf输出格式,但结果将不正确.

示例

#include

intmain(void){

inta;

printf("inputanumber\n");

scanf("%d",&a);

printf("%ld",a);

return0;

}

#include

intmain(void)

{

inta;

printf("inputanumber\n");

scanf("%d",&a);

printf("%ld",a);

return0;

}

由于输入数据类型为整数,并且输出语句的格式字符串被描述为长整数,因此输出结果与输入数据不匹配. 如果更改步骤如下

示例

#include

intmain(void){

longa;

printf("inputalonginteger\n");

scanf("%ld",&a);

printf("%ld",a);

return0;

}

#include

intmain(void)

{

longa;

printf("inputalonginteger\n");

scanf("%ld",&a);

printf("%ld",a);

return0;

}

运行结果为:

inputalonginteger

1234567890

1234567890

将输入数据更改为长整数类型时,输入和输出数据相等.

示例

#include

intmain(void){

chara,b,c;

printf("inputcharactera,b,c\n");

scanf("%c%c%c",&a,&b,&c);

printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

return0;

}

#include

intmain(void)

{

chara,b,c;

printf("inputcharactera,b,c\n");

scanf("%c%c%c",&a,&b,&c);

printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

return0;

}

输入三个小写字母并输出其ASCII码和相应的大写字母.

示例

#include

intmain(void){

inta;

longb;

floatf;

doubled;

charc;

printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));

return0;

}

#include

intmain(void)

{

inta;

longb;

floatf;

doubled;

charc;

printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));

return0;

}

输出各种数据类型的字节长度.

本文来自“ 10910765”博客,请保留此源

C语言scanf输入格式printf输出格式

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-/a/ruanjian/article-176833-1.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。