scanf函数

一、scanf函数

原理:键盘输入——> 输入缓冲区 <——scanf

解释:当输入缓冲区中有 \n (即回车)scanf会去输入缓冲区中取值——>当遇到匹配的格式scanf就取出值结束(当遇到不匹配的格式时就直接结束)。

注意:使用scanf输入的时候,系统只识别大回车。

 

一、scanf函数使用

案例一:

int main(int argc, const char * argv[]) {
    
    int x,y;
    double z;
    printf("请输入三个数:");
    scanf("%d %d %lf", &x,&y,&z);//三个数可以是空格隔开;也可以每次输入一个点回车,输入三次
    printf("%d %d %lf\n",x,y,z);
    
    return 0;
}

 

控制台打印:

请输入三个数:222

222

222

222 222 222.000000

Program ended with exit code: 0

 

请输入三个数:2 2 2

2 2 2.000000

Program ended with exit code: 0

 

案例二:

 1 int main(int argc, const char * argv[]) {
 2     
 3     int a,b,sum;
 4     scanf("%d%d",&a,&b);
 5     //输入两个相同类型,输入时中间必须有空格或大回车
 6     //输入后,按大回车,表示输入结束
 7     printf("%d\n%d\n",a,b);
 8     sum = a + b;
 9     printf("%d\n",sum);
10     
11     return 0;
12 }

 

 

控制台输出:

(空格)

1 2

1

2

3

Program ended with exit code: 0

 

(大回车)

1

2

1

2

3

Program ended with exit code: 0

 

案例三:

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char * argv[]) {
 4     
 5     int x1, x2;
 6     char y1, y2;
 7     
 8     scanf("%d%c%d%c",&x1,&y1,&x2,&y2);
 9     //如何输入:x1=10、y1=A、x2=20、y2=B
10     //输入:10A空格20B 或 10A大回车20B
11     printf("%d %d %c %c\n",x1,x2,y1,y2);
12     
13     return 0;
14 }

 

 

控制台输出:

(空格)

10A 20B

10 20 A B

Program ended with exit code: 0

 

(大回车)

10A

20B

10 20 A B

Program ended with exit code: 0

 

案例四:

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char * argv[]) {
 4     
 5     float a,b,c;
 6     //a=10.0、b=22.0/c=33.0
 7     scanf("%f %f%f",&a, &b, &c);
 8     //输入:10回车22回车33回车
 9     //或:10.0回车22.0空格33.0回车
10     //或:10空格22回车33回车
11     //或:10空格22空格33回车
12     printf("%f %f %f",a, b, c);
13     
14     return 0;
15 }

 

控制台:

 

10

22

33

10.000000 22.000000 33.000000Program ended with exit code: 0

 

 

10.0

22.0 33.0

10.000000 22.000000 33.000000Program ended with exit code: 0

 

 

10 22

33

10.000000 22.000000 33.000000Program ended with exit code: 0

 

 

10 22 33

10.000000 22.000000 33.000000Program ended with exit code: 0

 

 

案例五:

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char * argv[]) {
 4     
 5     int x1, x2;
 6     char y1, y2;
 7     scanf("%d%d",&x1,&x2);
 8     scanf("%c%c",&y1,&y2);
 9     //x1=10,x2=20,y1=A,y2=B
10     //输入:10空格20AB
11     printf("%d %d %c %c",x1,x2,y1,y2);
12     
13     return 0;
14 }

 

    

 

控制台:

 

10 20AB

10 20 A BProgram ended with exit code: 0

 

案例六:

 

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char * argv[]) {
 4     
 5     //控制台输出%
 6     char c = '%';
 7     printf("%c\n",c);
 8     
 9     printf("%%");
10     
11     return 0;
12 }

 

控制台:

%

%Program ended with exit code: 0

 

 

posted @ 2015-11-20 19:02  我就叫M  阅读(365)  评论(0编辑  收藏  举报