@君照流華
杭電第1000道,對程式結束條件産生迷惑,然後試着研究了一下scanf函數
題目比較水,但是剛開始看英文對程式結束條件十分疑惑,
後來看了小夥伴貼的代碼發現程式不需要結束條件,隻要求對輸入能夠輸出結果
解決代碼如下
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int num1,num2;
//C++
// while(cin>>num1>>num2)
while(scanf("%d%d",&num1,&num2)!=EOF) //C
cout<<num1+num2<<endl;
return 0;
}
-
EOF = “end of file”,在程式中對應的是有符号數-1。
而ASCII代碼值的範圍是0~127,不可能出現-1,是以可以用EOF作為檔案結束标志。
很多檔案處理函數處錯誤後的傳回值也是EOF,是以常被用來判斷調用一個函數是否成功。
-
scanf函數有傳回值,當其成功讀入幾個值,傳回值就為幾。 是以代碼判斷條件scanf("%d%d",&num1,&num2)!=EOF中,
成功讀入一個結果為1;讀入兩個為2;讀入失敗則為0;不會等于EOF對應的-1。
!!!注意:EOF的使用需要調用stdio.h的庫