花样字符串
花样字符串的普通体式花样为: %[*][输入数据宽度][长度]标准 个中无方括号[]的项为任选项。各项的意义如下:
1.标准
泄露阐扬阐发输入数据的标准,其花样符和意义下表所示。
花样 字符意义
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无标志十进制整数
f或e 输入实型数(用小数体式花样或指数体式花样)
c 输入单个字符
s 输入字符串
2.“*”符
用以泄露阐扬阐发该输入项读入后不付与相应的变量,即跳过该输入值。 如 scanf("%d %*d %d",&a,&b);当输入为:1 2 3 时,把1付与a,2被跳过,3付与b。
3.宽度
用十进制整数指定输入的宽度(即字符数)。比如: scanf("]",&a);
输入:
12345678
只把12345付与变量a,另外部分被截去。又如: scanf("MM",&a,&b);
输入:
12345678把把1234付与a,而把5678付与b。
4.长度
长度花样符为l和h,l泄露阐扬阐发输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h泄露阐扬阐发输入短整型数据。
运用scanf函数还必须细致以下几点:
a. scanf函数中没有精度控制,如: scanf("%5.2f",&a); 是不法的。不克不及方案用此语句输入小数为2位的实数。
b. scanf中要求给出变量地址,如给出变量名则会掉足。如 scanf("%d",a);是不法的,应改为scnaf("%d",&a);才是正当的。
c. 在输入多个数值数据时,若花样控制串中没有非花样字符作输入数据之间的隔绝间隔则可用空格,TAB或回车作隔绝间隔。C编译在碰到空格,TAB,回车或不法数据(如对“%d”输入“12A”时,A即为不法数据)时即感觉该数据完毕。
d. 在输入字符数据时,若花样控制串中无非花样字符,则感觉一切输入的字符均为无效字符。比如:
scanf("%c%c%c",&a,&b,&c);
输入为:
d e f
则把'd'付与a, 'f'付与b,'e'付与c。只需当输入为:
def
时,才能把'd'赋于a,'e'付与b,'f'付与c。 假使在花样控制中插足空格作为隔绝间隔,如 scanf ("%c %c %c",&a,&b,&c);则输入时各数据之间可加空格。
void main(){
char a,b;
printf("input character a,b\n");
scanf("%c%c",&a,&b);
printf("%c%c\n",a,b);
}
scanf("'C14F14%c%c",&a,&b);
printf("%c%c\n",a,b); 因为scanf函数"%c%c"中没有空格,输入M N,成果输入只需M。
而输入改为MN时则可输入MN两字符,见下面的输入运转状况: input character a,b
MN
MN
void main(){
char a,b;
printf("input character a,b\n");
scanf("%c %c",&a,&b);
printf("\n%c%c\n",a,b);
}
scanf("%c %c",&a,&b); 本例泄露阐扬阐发scanf花样控制串"%c %c"之间有空格时, 输入的数据之间可以有空格隔绝间隔。e. 假使花样控制串中有非花样字符则输入时也要输入该非花样字符。
比如:
scanf("%d,%d,%d",&a,&b,&c); 此中用非花样符“ , ”作隔绝间隔符,故输入时应为: 5,6,7
又如: scanf("a=%d,b=%d,c=%d",&a,&b,&c);
则输入应为
a=5,b=6,c=7g. 如输入的数据与输入的标准不分比如时,虽然编译可以经过,但成果把不精确。
void main(){
int a;
printf("input a number\n");
scanf("%d",&a);
printf("%ld",a);
}
因为输入数据标准为整型, 而输入语句的花样串中分解为长整型,因此输入成果和输入数据不符。如改动步伐如下:
void main(){
long a;
printf("input a long integer\n");
scanf("%ld",&a);
printf("%ld",a);
}
运转成果为:
input a long integer
1234567890
1234567890 当输入数据改为长整型后,输入输入数据相称。
键盘输入函数
getchar函数getchar函数的功用是从键盘上输入一个字符。其普通体式花样为: getchar(); 频频把输入的字符付与一个字符变量,组成赋值语句,如:
char c;
c=getchar();
#include<stdio.h>
void main(){
char c;
printf("input a character\n");
c=getchar();
putchar(c);
}
运用getchar函数还应细致几个标题结果:
1.getchar函数只能接纳单个字符,输入数字也按字符处理。输入多于一个字符时,只接纳第一个字符。
2.运用本函数前必须搜罗文件“stdio.h”。
3.在TC屏幕下运转含本函数步伐时,把参预TC 屏幕进入用户屏幕等待用户输入。输入截止再前往TC屏幕。
void main(){
char a,b,c;
printf("input character a,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);
}
输入三个小写字母
输入其ASCII码和对应的年夜写字母。
void main(){
int a;
long b;
float f;
double d;
char c;
printf("%d,%d,%d,%d,%d",sizeof(a),sizeof(b),sizeof(f)
,sizeof(d),sizeof(c));
}
输入各类数据标准的字节长度。
版权声明:
原创作品,承诺转载,转载时请务必以超链接体式花样标明文章 原始来由 、作者信息和本声明。不然将穷究执法责任。