我想問一下上下哪裡不一樣?下面的才給過誒
#include <iostream>
using namespace std;
int main(){
int a;
int b;
cin>>a>>b;
cout<<a+b<<endl;
}
VS
#include <iostream>
using namespace std;
int main(){
int a;
int b;
while(cin>>a>>b){
cout<<a+b<<endl;}
}
我想問一下上下哪裡不一樣?下面的才給過誒
#include
using namespace std;
int main(){
int a;
int b;
cin>>a>>b;
cout<<a+b<<endl;
}
VS
#include
using namespace std;
int main(){
int a;
int b;
while(cin>>a>>b){
cout<<a+b<<endl;}
}
上面只讀取 1 筆測資。
我想問一下上下哪裡不一樣?下面的才給過誒
#include
using namespace std;
int main(){
int a;
int b;
cin>>a>>b;
cout<<a+b<<endl;
}
VS
#include
using namespace std;
int main(){
int a;
int b;
while(cin>>a>>b){
cout<<a+b<<endl;}
}
上面的適用於單筆測資,下面的則是多筆
上面的意思:輸入a和b,輸出a+b(只執行1次)
下面的意思:當輸入a和b時,輸出a+b(只要有輸入a,b,就可以繼續執行)
這題是多筆測資,所以用下面的才對
一般來說,若沒有特別說明,就用下面的方式
回應標題:
cin 會回傳 cin 自己本身,而這也是為何我們可以寫作 cin >> a >> b 。
以上會先執行 cin >> a,回傳 cin ,所以以上的式子變成了 cin >> b ,也是回傳 cin 。
一旦,中途讀取失敗 (讀不到 b ,甚至是在 a 時讀失敗), cin 就會從好狀態 (good state) 轉變為壞狀態 (bad state),也就是有錯誤發生。
當放到條件式裡面時,等同於問最後回傳的 cin 是否處在好狀態 (good state),也就是沒有錯誤發生。如果是,則等價於「true」;反之,等價於「false」。
以上。小弟有錯的話煩請各位大大指正。