C/C++中輸入多組數據方法


--------開始--------

 

        對於剛開始學編程的人來說每次基本上就是一次數據輸入,多次的話基本也是會給定一個數組的大小,但隨着做刷算法題開始,題目有的會不直接告訴輸入幾組數據,基本輸入都是多組數據,對此不得不學習輸入多種數據的方法。

        關於文件結束符EOF
        EOF 是 End Of File 的縮寫,就是文件結束的意思。

EOF在C語言中是在標准庫中定義的一個宏,需要注意的是,EOF不是一個字符,它是從文件中讀取到的一個字符,通常被定義為 int 型的一個負數 // 例如-1.

 

方 法 一 :

#include <stdio.h>

int main()
{
    int n;
    while(scanf("%d",&n) != EOF)
    {
        printf("%d",n);
    }
    return 0;
}

在C語言中使用while循環語句,判斷輸入數據是否為文件結束符,如果不是就能夠達到多組輸入的結果。

 

方 法 二 :

#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    while(cin >> n)
    {
         cout << n << endl;  
    }
    return 0;
}

在C++中也運用while語句,原理與C語言中類似,while輸入語句不斷檢查輸入的值是否為文件結束的條件,進而得到輸入多組數據的結果。

 

方 法 三 :

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        cout << n << endl;
    }
    return 0;
}

這種方法在C和C++中相同,在scanf前加個~(按位取反),就是把二進制中的0變成1,1變成0,用在這里導致只有scanf返回-1,循環才會結束,也就是要返回EOF為止。

while (~scanf("%d",&n)) 相當於 while (scanf("%d",&n)!=EOF)

 

--------結束--------


免責聲明!

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



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