我知道這個問題已經被問了一百萬次,但是我有一個編碼問題,因爲有幾個替代方法似乎不適用於這個代碼,我不知道爲什麼。如果你在返回0之前正確地看,我正在嘗試cin.get()並且它不會停止該程序,並且我的PressEnterToContinue()函數也沒有在其他程序中找到的某處工作。我唯一需要處理的是系統暫停,我不想使用它,因爲我也將使用這個跨平臺。有任何想法嗎?系統的替代(「暫停」);重新編寫
#include <iostream>
using namespace std;
void PressEnterToContinue()
{
std::cout << "Press ENTER to continue... " << std::flush;
std::cin.ignore(std::numeric_limits <std::streamsize> ::max(), '\n');
}
int main(void)
{
int pause;
double distance, x1, y1, x2, y2, x, y;
cout << "This program outputs the distance between two points on a plane!" << endl;
cout << "Please input point X1" << endl;
cin >> x1;
cout << "Please input point Y1" << endl;
cin >> y1;
cout << "Please input point X2" << endl;
cin >> x2;
cout << "Please input point Y2" << endl;
cin >> y2;
x = x2 - x1;
y = y2 - y1;
distance = sqrt(x*x + y*y);
cout << distance << endl;
//cin.get();
//PressEnterToContinue();
//system("Pause");
return 0;
}
隨意提及停止系統的方法,我沒有在這裏。謝謝,
我不確定我明白爲什麼cin >> y2會在輸入緩衝區中留下換行符,您可以(或者其他人閱讀此解釋嗎?) – trueCamelType
@Slimmons更新了我的回答 –
好的,所以我可以使用帶PressEnterToContinue函數的peek方法,或者,如果我知道緩衝區中會有一個返回字符,我也可以先執行一個cin.ignore()我cin.get()正確嗎? – trueCamelType