C语言输入语句(进阶篇十五)

  ......

  scanf的使用

    程序1

      scanf的细节

// 15-1scanf的细节

#include <stdio.h>
#pragma warning(disable:4996);
 main()
{
     int i1, i2;
     long l1, l2;
     float f1, f2;
     double d1, d2;

     printf("请输入:\n");

     scanf("%d%d", &i1, &i2);        //键盘输入两个整型变量
     scanf("%ld%ld", &l1, &l2);        //输入两个长整型变量

     scanf("%f%f",&f1,&f2);            //输入单精度浮点数型到变量
     scanf("%lf%lf", &d1, &d2);        //输入双精度浮点型到变量

     printf("以下是输出:");
     printf("%d\n%d\n", i1, i2);
     printf("%ld\n%ld\n", l1, l2);
     printf("%f\n%f\n", f1, f2);
     printf("%lf\n%lf\n", d1, d2);
}

    ※可以指定输入数据所占列数,系统自动按要求截取所需数据。如:

        scanf(“%3d%3d”,&a,&b);

      若输入:

        5201314(回车)

        系统自动将520赋给a,131赋给b。

    ※与printf不同的是,输入数据时不能规定精度,如:

        scanf(“%7.2f”,&n); /*n为浮点型*/

      若输入:

      123456(回车)

        n的值并不是1234.56,而是乱码。

    ※如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。如:

        scanf(“%d,%d”,&a,&b);

       输入时应用如下形式:

         3,4

       如果用:

        3(回车)4

      变量b将得不到数据。

    如果是:

      scanf(“%d□□□%d”,&a,&b);       // □  代表空格

     输入时应用如下形式:

      3□□□4

   程序2

    scanf格式输入

// 15-2scanf的格式输入

#include <stdio.h>
#pragma warning(disable:4996);

main()
{
    int i1, i2;
    scanf("%d,%d", &i1, &i2);     //如果两个%d中间加符号,输入端两个数中间也一定要加符号

    scanf("i1=%d i2=%d", &i1, &i2); //输入端输入应为:i1=5 i2=8   输出结果为 5   8
    printf("第一个数是:%d\n", i1);
    printf("第二个数是:%d\n", i2);
}

    ※在输入数据时,遇以下情况时该数据认为结束:

      (1)遇空格,或按“回车”或“跳格”(TAB)键

      (2)按指定的宽度结束,如%3d,只取3列。

      (3)遇非法输入。

      (4)%c只取1列。

    如:

      scanf(“%2d%d%f”,&a,&b,&c);

    若输入

      12345.26 78

      3个变量的结果:a为12,b为345,c为0.26

    ※在输入long型数据时,格式字符必须是%ld;输入double时,格式字符必须是%lf。否则得不到正确的数据 

原文地址:https://www.cnblogs.com/httpcc/p/15411400.html