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。否則得不到正確的數據 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM