C语言第2讲——数据类型+运算符(2)

接上一篇printf()函数

为什么需要输出控制符?

1. 01组成的代码可以表示数据也可以表示指令,要看怎么解读。输出控制符告诉怎么解读;

2. 如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式输出,就会有不同的输出结果;

--------------------------------------------------------------------------------------------------------------------------------

scanf()——通过键盘将数据输入到变量中

        三种用法:

用法一:        scanf("输入控制符",输入参数);

功能:            将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。

/*
    2022年6月7日
    功能:从键盘输入一个值再从屏幕中显示出来
    目的:scanf函数的用法之不含非输入控制符

*/

#include <stdio.h>

int main(void)
{
    int i;

    scanf("%d",&i); /*&是取地址符,&i 表示i的地址。操作系统接收键盘数据
            都将其当成字符接收,%d的意思是将从键盘接收的字符转化成十进制  */
    printf("i = %d\n",i);

    return 0;
}

用法二:        scanf("非输入控制符  输入控制符",输入参数);

功能:            将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。且非输入控制符必须原样输入

/*
    2022年6月7日
    功能:从键盘输入一个值再从屏幕中显示出来
    目的:scanf用法之含有非输入控制符

*/

#include <stdio.h>

int main(void)
{
    int i;
    
    scanf("m%d",&i);  //m是非输入控制符
    printf("i = %d\n",i);

    return 0;
}

输入:123

输出:i = -858993460

输入:m123

输出:i = 123

输入:m123n

输出:i = 123

注意: 一般不写非输入控制符!

用法三:        scanf("输入控制符1  输入控制符2  输入控制符3",输入参数1,输入参数2,输入参数3);

功能:

/*
    2022年6月7日
    功能:给多个变量键盘赋值,并从屏幕中显示出来
    目的:scanf用法之一次给多个变量键盘赋值

*/

#include <stdio.h>

int main(void)
{
    int i, j, k;

    scanf("%d %d %d", &i, &j, &k);
    printf("i = %d,j = %d,k = %d\n", i, j, k);

    return 0;
}

---------------------------------------------------------------------------------------------------------------------------------

如何使用scanf编写出高质量代码?

1.  使用scanf之前最好先使用printf提示用户以什么样的方式来输入;

2.  scanf中尽量不要使用非输入控制符,尤其不要使用\n;

3.  应该编写代码对用户的非法输入做适当的处理,如下例:

 当这种情况时,i读取到合法字符123,会自动让j读取,是非法字符就会输出一个垃圾值。所以应该编一个可以把之前用户遗留的垃圾值全部清除掉的代码。

 当加了这两行代码后,即使输入123m,程序也不会停止。可以自动丢弃前面的垃圾非法数值

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值