我想建立一個簡單的代碼,給你的方向輸入後,在兩個方面的座標。 問題是我不知道如何在用戶按下回車鍵時輸出正確的輸出。這應該是(0,0),因爲如果用戶只是按下輸入,這意味着他沒有改變座標。我怎麼知道用戶是否剛剛按下輸入並相應地輸出正確的輸出?如何獲得輸出時,用戶只需按下輸入在c + +
這是我做的代碼:
#include <iostream>
using namespace std;
int main()
{
int a = 0, b = 0;
string direction;
if(cin >> direction) {
if(!direction.empty()) {
// handle input correctly
// Interpret directions
for (int i = 0; i < direction.length(); i++) {
if (direction[i] == 'e') a++;
else if (direction[i] == 's') b++;
else if (direction[i] == 'w') a--;
else if (direction[i] == 'n') b--;
}
}
else if (direction.empty()) cout << "(0,0)" << endl;
}
// Output coordinates
cout << "(" << a << "," << b << ")" << endl;
}
更新了我的代碼,但還是不輸出(0,0)。爲什麼? – jonathan9879
我不知道。如果上面的代碼是你正在編譯的確切代碼,那麼你在本身中調用main是不正確的,並且會導致堆棧溢出。你將不得不調試你的代碼,也許用添加的printf等價物來看看發生了什麼。至少,爲從cin讀取失敗並打印的情況添加一個else(以便您可以驗證您的代碼是否按照您的預期方式執行) – 2015-09-26 22:12:15