码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员——C语言基础---scanf函数

时间:2015-06-05 22:30:29      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

------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 }

 

黑马程序员——C语言基础---scanf函数

标签:

原文地址:http://www.cnblogs.com/r360/p/4555631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!