#29513: 讀取數字直到EOF


johneyhu (胡氐)

學校 : 不指定學校
編號 : 179873
來源 : [61.219.167.31]
最後登入時間 :
2024-08-20 17:07:07
d881. 作業苦多 -- CSDC | From: [61.219.167.31] | 發表日期 : 2022-03-08 11:08

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

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

 {

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

 }

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

Example input

 1

 2

 3

 4

 5

 

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

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


johneyhu (胡氐)

學校 : 不指定學校
編號 : 179873
來源 : [61.219.167.31]
最後登入時間 :
2024-08-20 17:07:07
d881. 作業苦多 -- CSDC | From: [1.173.128.198] | 發表日期 : 2022-03-15 19:36

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

 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;

    }

 

 

 
ZeroJudge Forum