C语言入门第五篇,输入

上上一节,我们也说了变量的赋值,那么能不能给变量输入我想要给它的值呢?当然可以。下面我们来看看scanf这个函数。

scanf
scanf类似我们刚刚讲了的printf,scanf是格式化输入(scanf其实还是比较复杂的一个函数,我们这里先用着,学到后面我们再来看看输入输出家族这些函数大家就都明白啦)。

首先我们必须要清楚,scanf只是负责输入,不负责输出。所以想要输出的话还是要靠printf。我们先来看一个例子。

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);//输入一个整数
    printf("%d\n",a);
    return 0;
}

scanf的输入格式和printf的是一样的如果忘了的话,可以去上一节看看。大家试着把上面的代码放在自己的编译器里试试。

我们来看看这个代码里面的scanf,其实和printf差不多,只是在变量的前面多了一个&,这个&的意思是取这个变量的内存地址。scanf里面用变量的时候一定要取地址,不然运行的时候会报错(当然后面会讲到指针,如果是个指针变量的话就不会,不懂什么是指针就先不管这里)。取地址符&我们会在下一节讲,这里知道它的作用就好了。

大家试着敲敲这段代码

#include<stdio.h>

int main()
{
    int a;
    float b;
    double c;
    char d;
    printf("输入一个字符(回车结束):"); 
    scanf("%c",&d);
    printf("输入一个整数(回车结束):"); 
    scanf("%d",&a);
    printf("输入一个单精度数(回车结束):"); 
    scanf("%f",&b);
    printf("输入一个双精度数(回车结束):"); 
    scanf("%lf",&c);
    printf("字符是%c\n",d);
    printf("整数是%d\n",a);
    printf("单精度数是%f\n",b);
    printf("双精度数%lf\n",c);
    return 0;
}

在好好看看这段代码,你就会更好的掌握scanf这个函数。有人可能会发现问题,如果把输入字符放在后面任何一行都会出错,没有显示出想显示的东西。这一点我们会在后面讲输入输出家族的时候详细的分析这个问题。

输入的格式问题
有些人很纠结输入格式的问题,就是我在一个scanf里面输入多个变量的时候怎么办?中间用逗号隔开还是空格?这些应该是很多人纠结的问题。下面我们来看看吧。
假设我们要用空格隔开变量要怎么写呢?效果如下:
这里写图片描述
代码如下:

#include<stdio.h>

int main()
{
    int a,b;
    printf("输入两个整数用空格隔开:");
    scanf("%d%d",&a,&b);
    printf("这两个数是%d%d\n",a,b); 
    return 0;
}

如果在scanf的两个%d之间加一个空格也是可以的。

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

如果要用逗号分开的话,效果如下:
这里写图片描述
这个只需要在scanf的两个%d之间加一个逗号就可以了。

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

但是记住如果这个中间有逗号的话就必须用逗号,不然输出的值会有问题,当然中间是空格的话也要有空格,中间什么也没有还是要用空格。

总结
scanf输入函数类似printf函数。
1.我们这里简单的介绍了scanf函数,大家会用就好。
2.scanf和printf函数一样是格式化输入的。输入的时候数据类型一定要对,不然传入的值会有问题。
3.一定不要忘了,scanf函数在输入变量的时候的取地址符号&,因为你不写&编译器不会报错,直到你运行的时候才会出错。
4.最后注意一下输入多个变量的问题。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值