--------開始--------
對於剛開始學編程的人來說每次基本上就是一次數據輸入,多次的話基本也是會給定一個數組的大小,但隨着做刷算法題開始,題目有的會不直接告訴輸入幾組數據,基本輸入都是多組數據,對此不得不學習輸入多種數據的方法。
關於文件結束符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)
--------結束--------