------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1,scanf函数的概念
scanf函数也叫阻塞式函数,也就是说当函数执行后,会等待用户的输入,如果用户不输入任何内容,他会一直等待。如果使用这个函数,必须包含一个头文件 stdio.h。
2,scanf函数的作用
从键盘接受用户输入的内容,保存到指定的变量中。
3,scanf函数的格式
scanf("格式控制符",输入项的地址列表);
4,scanf函数的用法
输入一个整数
int age; //定义一个整型age变量
scanf("%d" , &age); //%d表示用户输入一个十进制的整数
//&是C语言中的一个地址运算符,表示用来获取变量age的地址
输入一个小数
float score=0.0f; //定义一个实型score变量
printf("请输入一个分数:/n"); //提示用户输入一个分数
scanf("%f",&score); //接受用户输入的值保存到score中
5,scanf函数的注意事项
1>接受单个变量值的时候,在输入值之前,如果我们输入了空格,回车,tab的时候,都会被忽略
2>scanf函数当遇到回车的时候,会结束执行
3>%d%d要求我们在键盘上输入的时候,输入的两个整数,并且以空格或者回车隔开12 32
4>在scanf中,尽量不要使用/n,会导致函数无法结束,比如scanf(“%d\n”, &a); 这将导致scanf函数无法结束
6,scanf运行的原理
1>当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中,然后,scanf函数会根据格式控制的 字符的要求,从输入缓冲区依次取他想要的内容
如果 从缓冲区中取得内容和我们的格式要求一致,则把值存放到变量中
如果格式不一致,则不修改变量的值
2>如果scanf缓冲区中还有内容,则scanf不会提示我们再次输入内容
7,scanf函数的课程代码
1 #include <stdio.h> 2 3 void test(){ 4 5 //从键盘上接收一个人得年龄,然后打印出来 6 7 //获取变量的地址:用取地址符号 & 8 9 //1、定义变量 10 int age=-1; 11 //2、给一个提示,让用户输入一个年龄 12 printf("请输入年龄:\n"); 13 //把用户输入的值,放到age变量中 14 //如果输入的是小数,此时age只保存整数部分 15 scanf("%d",&age); //获取了age这个变量的地址 16 //3、打印用户输入的年龄 17 printf("您输入的年龄是:%d\n",age); // 18 19 } 20 21 int main(int argc, const char * argv[]) { 22 23 24 //接收一个小数 25 float score=0.0f; 26 printf("请输入一个分数:\n"); 27 //接收用户输入的值保存到score中 28 scanf("%f",&score); //此处不允许写%m.nf,但是%mf是可以的 29 //打印score的值 30 printf("%3.2f\n",score); 31 32 33 return 0; 34 }
1 #include <stdio.h> 2 void test(){ 3 4 5 //scanf的注意事项 6 //0、scanf函数当遇到回车的时候,会结束执行 7 //1、接收单个变量值的时候,在输入值之前,如果我们输入了空格 回车 tab,都会被忽略 8 int age=-1,num=-1; 9 //%d%d,要求我们在键盘上输入的时候,输入两个整数,并且以空格或者回车隔开12 34 10 //输入完第一个数以后,如果中间添加了回车 空格 tab 都会被忽略 11 scanf("%d%d",&age,&num); 12 13 printf("age = %d,num = %d\n",age,num); 14 15 //12,34 age 12 num -1 16 17 } 18 19 void test2(){ 20 21 int a=-1,b=-1; 22 char ch; 23 //接收键盘输入的值 24 //scanf("%d,%c,%d",&a,&ch,&b); 25 scanf("%d%c%d",&a,&ch,&b); 26 //打印变量的值 27 printf("%d,%c,%d\n",a,ch,b); // 理想:12,a,45 实际:12, ,-1 28 29 } 30 31 void test3(){ 32 33 34 //关于*号的使用 35 int a,b; 36 a = b = -1; //连续赋值 37 // %*d 跳过一个整数 38 scanf("%d%*d%d",&a,&b); 39 40 printf("%d,%d",a,b); 41 42 } 43 44 int main(int argc, const char * argv[]) { 45 46 int age=-1; 47 //关于scanf中,尽量不要使用 \n 48 //如果一不小心使用了,怎么破 49 // 1) 输入值后,随便输入一个内容 50 // 2) \n要原样输入 51 52 scanf("%d\n",&age); 53 printf("age = %d\n",age); 54 55 return 0; 56 }
1 #include <stdio.h> 2 void test(){ 3 4 5 //scanf的注意事项 6 //0、scanf函数当遇到回车的时候,会结束执行 7 //1、接收单个变量值的时候,在输入值之前,如果我们输入了空格 回车 tab,都会被忽略 8 int age=-1,num=-1; 9 //%d%d,要求我们在键盘上输入的时候,输入两个整数,并且以空格或者回车隔开12 34 10 //输入完第一个数以后,如果中间添加了回车 空格 tab 都会被忽略 11 scanf("%d%d",&age,&num); 12 13 printf("age = %d,num = %d\n",age,num); 14 15 //12,34 age 12 num -1 16 17 } 18 19 void test2(){ 20 21 int a=-1,b=-1; 22 char ch; 23 //接收键盘输入的值 24 //scanf("%d,%c,%d",&a,&ch,&b); 25 scanf("%d%c%d",&a,&ch,&b); 26 //打印变量的值 27 printf("%d,%c,%d\n",a,ch,b); // 理想:12,a,45 实际:12, ,-1 28 29 } 30 31 void test3(){ 32 33 34 //关于*号的使用 35 int a,b; 36 a = b = -1; //连续赋值 37 // %*d 跳过一个整数 38 scanf("%d%*d%d",&a,&b); 39 40 printf("%d,%d",a,b); 41 42 } 43 44 int main(int argc, const char * argv[]) { 45 46 int age=-1; 47 //关于scanf中,尽量不要使用 \n 48 //如果一不小心使用了,怎么破 49 // 1) 输入值后,随便输入一个内容 50 // 2) \n要原样输入 51 52 scanf("%d\n",&age); 53 printf("age = %d\n",age); 54 55 return 0; 56 }
时间: 2024-10-07 02:17:00