C语言中printf和scanf的使用

一、printf的使用:

    int printf(const char *format, ...);
    //参数:format ---- 字符串常量,表示输出的格式
    //参数: ...  ------ 变参,表示要输出的数据,数据的个数和类型都不固定
    
    例如: 

 int main(void)
    {
        int a;
        float b;
        double c;

        a = 120;
        b = 43.21;
        c = 43.21;

        printf("%d\n",a);
        printf("%f\n",c);
        printf("%d,%f\n",a,b);
        printf("a = %d,b = %f\n",a,b);
        printf("%d\n",120);
        printf("%d,%f\n",120,34.56);
        printf("%d\n",a+100);
        printf("%d%%\n",120);
        
        return 0;
    }


   

    
    转换说明符的含义 :
    %d    有符号十进制整数
    %o    无符号八进制整数
    %u    无符号十进制整数
    %x    无符号十六进制整数
    %c    一个字符
    %s    字符串
    %f    十进制计数法的浮点数
    %e    E-计数法的浮点数
    %p    指针

    在使用printf时需要注意以下几个问题:
    1》转换说明符和变参的个数要相同
    2》转换说明符和变参的类型要一致
    3》输出的变参可以是常量,变量,表达式等
    4》输出float数据和double数据时,都用%f 
    5》输出%时,需要用%%

    //printf的修饰符
    例如: 

  #include <stdio.h>

    int main(void)
    {
        int a = 123;
        float b = 12.34;

        printf("%7d\n",a);  //7-表示输出的数据最小的字段宽度为7
        printf("%07d\n",a);  //0-表示如果实际宽度不够7则在左边用0填充

        printf("%-7d\n",a);  //负号-表示左对齐

        printf("%.2f\n",b);  //.2 - 表示保留小数后2位
        printf("%10.2f\n",b);  //.2 - 表示保留小数后2位

        printf("%d\n",-129);
        printf("%+d\n",+120);  //+ -在数据前显示+号


        char c = 'A';
        short s = 10; 
        long l = 100;
        long long ll = 10000;

        printf("%c\n",c);
        printf("%hhd\n",c);  // %hhd ---输出char型整数
        printf("%hd\n",s);   // %hd --- 输出short型整数
        printf("%ld\n",l);  // %ld --- 输出long型整数
        printf("%lld\n",ll);// %lld --- 输出long long型整数

        return 0;
    }

2、scanf的使用:
    
    int scanf(const char *format, ...);
    //参数:format ---- 字符串常量,表示输入的格式
    //参数: ...  ------ 变参,表示要输入的数据保存的数据地址,数据的个数和类型都不固定
    
    例如: 

 int main(void)
    {
        int a;
        float b;
        double c;
        char ch;

        /*
        //scanf("%d",&a);   //&a --表示变量a的地址
        scanf("%d%f%lf",&a,&b,&c);
        //scanf("a=%d,b=%f",&a,&b);  //不推荐使用
    */
        scanf("%d%c%f",&a,&ch,&b);
        printf("a = %d,b = %.2f,ch = %c\n",a,b,ch);

        return 0;
    }


    

    当使用scanf时,需要注意以下几点:
    1》转换说明符和变参的个数要相同
    2》转换说明符和变参的类型要一致
    3》输入的变参必须是变量的地址,或者内存空间的地址
    4》输入float数据,则用%f,如果输入为double数据,则用%lf 
    5》如果输入多个数据时,数据之间需要用空白符隔开(空白符:空格,换行,tab)
    6》如果输入数据中有字符,则字符和前面的数据之间不能用空白符隔开,必须紧挨着输入
    


    //scanf的返回值

    int main(void)
    {
        int a;
        float b;
        int ret;

        printf("请输入a和b:");
        ret = scanf("%d%f",&a,&b);
        printf("ret = %d\n",ret);
        printf("a = %d,b = %.2f\n",a,b);

        return 0;
    }


  
   //运行结果:
  1.获取两个输入

    请输入a和b:120 3.4
    ret = 2
    a = 120.b = 3.40

2.获取1个输入:

 请输入a和b:120 r
    ret = 1
    a = 120.b = 0.00

3.获取0个输入:

    请输入a和b:r 2.4
    ret = 0
    a = 21849.b = -0.00
  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值