私の目的は、ユーザーから指示を受け取り、最終的にはテキスト ファイルからロボットを動かすことです。問題は、std::string ではなく Cstring (char word[]; など) を使用し、それらをトークン化して使用する必要があることです。
コードは次のようになります。
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);
}
}
これまでトークン化したことがない Cstring を使用したことがなく、これを記述する方法もわかりません。私たちの TA は、私たちがこれらの方法を教えられたことがないことを知っているので、私たちがググってすべての答えを見つけることを期待しています。私の研究室の誰もが、いつもよりずっと多くの問題を抱えています。
書くコードはわかりませんが、プログラムに何をさせたいかはわかっています。
次のように実行したい:
1) 道を尋ねる。
2) ユーザーが入力
した cin.getline 3) 入力された文字列をトークン化する
4) 最初の単語 token == "forward" の場合は、次のトークンに移動し、何インチ前に移動するかを調べてから、次に移動します
5) そうでない場合は、最初のトークン== "turn" 次のトークンに移動します。次のトークン == "左" の場合、次のトークンに移動し、左に何度曲がるかを調べます
前方 x、後方 x、左折 x、右折 x、停止 (x はインチまたは度) に対してこれを行う必要があります。ロボットに 1 インチ前進し、度単位で回転する方法を指示する関数を既に作成しました。入力された文字列をすべて小文字に変換し、トークンからトークンに移動し、文字列から数値を変換または抽出して整数として使用する方法を知る必要があるだけです。
すべてが明確でない場合は、このリンクで私のラボの記事を読むことができます: http://www.cs.utk.edu/~cs102/robot_labs/Lab9.html
何か不明な点がある場合はお知らせください。私ができる最善のこと。