注意: 博主將持續更新此文檔, 直到文尾的 <未完待續> 標記清除 ios
算法競賽題目通常會有多個測試用例,採用重定向的方式把數據送給程序。
而後觀察程序的輸出是否和預期的結果一致。
多數狀況下,這些測試用例會以文件的形式存在。這就要注意如下的問題:c++
下面咱們舉一些最多見的例子。算法
測式數據測試
3 5 -7 9
因爲c++的類庫封裝很好,這能夠很簡明地處理以下:spa
#include <iostream> using namespace std; int main() { int n; while(cin >> n){ cout << n << endl; } return 0; }
在不一樣平臺上,最後一行有沒有回車,分隔符是1個空格仍是多個空格都很好地被考慮了。操作系統
測試數據code
10 20 30 40 50 60
注意,每一個整數後面多是1個或多個空格,也多是回車符,也可能先是空格再接着一個回車符
最後一行最後一個整數後也可能什麼都沒有,直接撞上EOF標記。ci
#include <iostream> using namespace std; int main() { int a,b; while(cin >> a >> b){ cout << a << "," << b << endl; } return 0; }
測試數據文檔
3 I am a student test string ok
注意,用 scanf 確定是不行的,由於遇到了分隔符就會返回了,不能讀入完整的串。字符串
#include <iostream> using namespace std; int main() { const int MAXN = 1000; char str[MAXN]; int n; cin >> n; cin.getline(str,10); // 這個空讀重要,由於在讀整數的時候不會吃掉所遇的分隔符。 for(int i=0; i<n; i++){ cin.getline(str, MAXN); cout << str << endl; } return 0; }
<未完待續>