[問題] 新手寫C++計算機 請求幫助><

看板C_and_CPP (C/C++)作者 (維尼)時間16年前 (2009/12/29 01:23), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 當輸入不是+ - * /時,如何要求重新輸入並繼續執行 希望得到的正確結果: 計算機能繼續執行 程式跑出來的錯誤結果: 當輸入完不是+ - * / 時 重新輸入後會關閉 不知道怎麼處理 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) C++ 補充說明: 這是小弟的程式碼 請鞭ˊˋ #include "stdafx.h" #include <iostream> using namespace std; int main(int argc, char* argv[]) { double a;//數字1 double b;//數字2 char op; cout <<"輸入第一個整數:"; cin >>a; cout <<"輸入第二個整數:"; cin >>b; do { cout <<"請選擇+.-.*./:"; cin >>op; switch(op){ case'+': cout << "結果為 " << a << op << b << " 是 " <<a+b<< endl; break; case'-': cout << "結果為 " << a << op << b << " 是 " <<a-b<< endl; break; case'*': cout << "結果為 " << a << op << b << " 是 " <<a*b<< endl; break; case'/': cout << "結果為 " << a << op << b << " 是 " <<a/b<< endl; break; default: op = 'x'; cout << "錯誤輸入,請重新輸入:"; break; } }while (op != 'x'); cout <<"你所輸入是錯誤的:" << endl; cin.clear();// 重新設定cin的讀取狀態 cin.sync();// 使用者剛才輸入的垃圾還留在 cin 的 buffer 中,用 sync() 可以清掉這些垃圾 cin >> op >> a >> b; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.22.78

12/29 01:27, , 1F
while (op != 'x'); 應該是== ??
12/29 01:27, 1F

12/29 01:28, , 2F
希望對你有幫助
12/29 01:28, 2F

12/29 01:33, , 3F
請問是改成 while (op == 'x'); 這樣嗎?
12/29 01:33, 3F

12/29 01:42, , 4F
如果我沒有誤會你的意思應該是改成==就會對
12/29 01:42, 4F

12/29 01:53, , 5F
我是希望說 重新輸入後 能繼續執行 但是我失敗了...
12/29 01:53, 5F

12/29 04:26, , 6F
一樓正解
12/29 04:26, 6F

12/29 10:15, , 7F
可是我重新輸入正確的計算符號後,他就會停止運算,跳出了
12/29 10:15, 7F

12/29 10:15, , 8F
我該要怎麼繼續讓他繼續執行?不要跳開呢??
12/29 10:15, 8F

12/29 13:34, , 9F
你最外面要再加一個while
12/29 13:34, 9F
文章代碼(AID): #1BEEc80L (C_and_CPP)
文章代碼(AID): #1BEEc80L (C_and_CPP)