Моя цель — получить указания от пользователя и, в конечном итоге, текстовый файл для перемещения робота. Загвоздка в том, что я должен использовать Cstrings (например, char word[];), а не std::string, и размечать их для использования.
код выглядит так:
void Navigator::manualDrive()
{
char uinput[1];
char delim[] = " ";
char *token;
cout << "Enter your directions below: \n";
cin.ignore();
cin.getline (uinput, 256);
token=strtok(uinput, delim);
if(token == "forward")
{
int inches;
inches=token+1;
travel(inches);
}
}
Я никогда не использовал Cstrings, никогда раньше ничего не токенизировал, и я не знаю, как это написать. Наши ассистенты ожидают, что мы погуглим и найдем все ответы, потому что они знают, что нас никогда не учили этим методам. У всех в моей лаборатории гораздо больше проблем, чем обычно.
Я не знаю кода, который нужно написать, но я знаю, что должна делать моя программа.
Я хочу, чтобы она выполнялась следующим образом:
1) Спросите дорогу.
2) cin.getline вводимые пользователем строки
3) токенизируйте введенную строку
4) если первое слово token == "forward", перейдите к следующему токену и узнайте, как много дюймов, чтобы двигаться вперед, затем двигаться вперед
5) иначе, если первый жетон == "повернуть", перейти к следующему жетону. если следующий жетон == "влево" перейти к следующему жетону и узнать, на сколько градусов повернуть налево
Мне нужно будет сделать это для вперед x, назад x, повернуть налево x, повернуть направо x и остановиться (где x в дюймах или градусах). Я уже написал функции, которые сообщают роботу, как двигаться вперед на дюйм и поворачиваться в градусах. Мне просто нужно знать, как преобразовать введенные строки во все строчные буквы и перейти от токена к токену, а также преобразовать или извлечь числа из строки, чтобы использовать их как целые числа.
Если все неясно, вы можете прочитать мою лабораторную запись по этой ссылке: http://www.cs.utk.edu/~cs102/robot_labs/Lab9.html
Если что-то неясно, дайте мне знать, и я поясню, как смогу.