黑马程序员-scanf函数

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

函数scanf(),是标准C语言库里常用的一个格式输入函数,用于按用户指定的格式从键盘上把数据输入到指定的变量之中。

其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。

示例:


int main(int argc, const char * argv[]) {
    
    int a;
    scanf("%d",&a);
    printf("%d\n",a);
    
    return 0;
}

此时,我们输入一个整数,比如:1,则会输出1。

需要注意的是,scanf()函数是有返回值的,返回的是int类型的数据。

比如下面的代码,我们会得到2,1结果。

int main(int argc, const char * argv[]) {
    
    int a,b;
    
    b=scanf("%d",&a);
    
    printf("%d,%d\n",a,b);
    
    return 0;
}

使用scanf()输入多个数据时与单个输入类似,需要注意的是混合输入多个数据的时候,可能会出错。
比如,我们需要输入一个整数一个字符一个带小数这样的数据时,类似下面的代码就会出错。
int main(int argc, const char * argv[]) {
    
    int a;
    char ch;
    float f;
    scanf("%d%c%f",&a,&ch,&f);
    
    printf("%d,%c,%f\n",a,ch,f);
    
    return 0;
}
如果这时候我们输入  12a1.1  是不会出错的,可以输出我们输入的数据,但是这样输入的时候可读性很差。而如果我们输入12 (空格)a (空格) 1.1 时,可读性是提高了,但是结果并不是我们想要的,会输出:

12, ,0.000000   很明显不是我们想要的结果。

所以,我们可以通过以下的两段代码来解决这个问题:

第一,三次调用scanf函数。

例如:

int main(int argc, const char * argv[]) {
    
    int a;
    char ch;
    float f;
    scanf("%d ",&a );
    scanf(" %c ", &ch );
    scanf(" %f", &f);
    printf("%d,%c,%f\n",a,ch,f);
    
    return 0;
}
第二,我们在scanf函数调用时,添加逗号来分割输入,需要特别提醒的是这里的逗号必须是英文格式下的,我在第一次调试的时候输入了中文格式下的逗号,结果在输出ch的时候出现乱码的情况。

int main(int argc, const char * argv[]) {
    
    int a;
    char ch;
    float f;
    scanf("%d,%c,%f",&a,&ch,&f);
    
    printf("%d,%c,%f\n",a,ch,f);
    
    return 0;
}

以上就是我们使用scanf函数时需要特别注意的地方。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值