#29513: 讀取數字直到EOF


johneyhu (胡氐)

學校 : 不指定學校
編號 : 179873
來源 : [118.171.0.14]
最後登入時間 :
2025-05-31 11:11:23

網路上有很多建議以下寫法.

 while(scanf("%d ",&D) != EOF)

 {

        printf("Get %d\n",D);

 }

但以上的程式似乎無法停止, 以下的測據不會

Example input

 1

 2

 3

 4

 5

 

可以改用 getchar() 一個字一個字來讀..

#29622: Re:讀取數字直到EOF


johneyhu (胡氐)

學校 : 不指定學校
編號 : 179873
來源 : [118.171.0.14]
最後登入時間 :
2025-05-31 11:11:23

網路上有很多建議以下寫法.

 while(scanf("%d ",&D) != EOF)

 {

        printf("Get %d\n",D);

 }

但以上的程式似乎無法停止, 以下的測據不會

Example input

 1

 2

 3

 4

 5

 

可以改用 getchar() 一個字一個字來讀..


一個一個讀取程式碼

    char c,p='A';

    int A =0 ;

 

    //Example:

    // 33\n

    // 55\n

    // 887\n

    // \n

 

    while(1)

    {

        c = getchar();

        if(c != '\n')

        {

           A = A*10 + (c - '0');

        }

        else if((c == '\n') && (p == '\n'))

          break;

        else if((c == '\n') && (p != '\n'))

        {

            printf("    =>%d\n",A);

            A=0;

        }

        p = c;

    }