所以我写的程序要求我使用构造函数输入对象的初始值(流动站),我无法弄清楚正确的语法,以便它让我输入输入坐标的每一步和方向。如果有人能够告诉我如何制作它将不胜感激。
text/css
答案 0 :(得分:0)
构造函数的实现应该比这简单得多。只需使用输入参数初始化成员变量。
Rover::Rover(int xp, int yp, string dir, int sp) :
xpos(xp), ypos(yp), direction(dir), speed(sp) {}
读取输入然后使用输入构造对象的代码可以移动到不同的函数,最好是非成员函数。
Rover readRover()
{
int xp;
int yp;
string dir;
int sp;
cout << "Please enter the starting X-position: ";
cin >> xp;
cout << "Please enter the starting Y-position: ";
cin >> xp;
cout << "Please enter the starting direction (N,S,E,W): ";
cin >> dir;
cout << "Please enter the starting speed (0-5): ";
cin >> sp;
// Construct an object with the user input data and return it.
return Rover(xy, yp, dir, sp);
}
然后,main
根据您的意愿使用readRover
。
Rover r1 = readRover();
Rover r2 = readRover();
Rover r3 = readRover();
Rover r4 = readRover();
Rover r5 = readRover();
函数readRover
假定用户提供了正确的输入。如果用户没有提供正确的输入,你的程序将会卡住,唯一的出路就是使用 Ctrl + C 或类似的东西中止程序。
要处理用户错误,您需要先添加代码来检测错误,然后再决定如何处理错误。
if ( !(cin >> xp) )
{
// Error in reading the input.
// Decide what you want to do.
// Exiting prematurely is an option.
std::cerr << "Unable to read x position." << std::endl;
exit(EXIT_FAILURE);
}