วัตถุประสงค์ของฉันคือการขอคำแนะนำจากผู้ใช้และในที่สุดก็ได้รับไฟล์ข้อความเพื่อเคลื่อนย้ายหุ่นยนต์ สิ่งที่จับได้คือฉันต้องใช้ 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 ฉันไม่เคยโทเค็นอะไรเลยมาก่อน และฉันไม่รู้ว่าจะเขียนสิ่งนี้อย่างไร T.A. ของเราคาดหวังให้เราใช้ Google และค้นหาคำตอบทั้งหมด เพราะพวกเขาตระหนักดีว่าเราไม่เคยได้รับการสอนวิธีการเหล่านี้มาก่อน ทุกคนในห้องทดลองของฉันมีปัญหามากกว่าปกติมาก
ฉันไม่รู้ว่าจะเขียนโค้ดอย่างไร แต่ฉันรู้ว่าต้องการให้โปรแกรมทำอะไร
ฉันต้องการให้มันดำเนินการดังนี้:
1) ถามเส้นทาง
2) cin.getline ที่ผู้ใช้ป้อนข้อมูล
3) โทเค็นสตริงที่ป้อน
4) หากโทเค็นคำแรก == "ไปข้างหน้า" ย้ายไปยังโทเค็นถัดไปและค้นหาวิธีการ หลายนิ้วเพื่อก้าวไปข้างหน้าแล้วก้าวไปข้างหน้า
5) มิฉะนั้นหากโทเค็นแรก == "เลี้ยว" ย้ายไปที่โทเค็นถัดไป ถ้าโทเค็นถัดไป == "ซ้าย" ให้ย้ายไปยังโทเค็นถัดไปแล้วดูว่าต้องเลี้ยวซ้ายกี่องศา
ฉันจะต้องทำสิ่งนี้เพื่อเดินหน้า x ถอยหลัง x เลี้ยวซ้าย x เลี้ยวขวา x และหยุด (โดยที่ x อยู่ในหน่วยนิ้วหรือองศา) ฉันได้เขียนฟังก์ชันที่บอกหุ่นยนต์ว่าจะเคลื่อนที่ไปข้างหน้าหนึ่งนิ้วและหมุนเป็นองศาได้อย่างไร ฉันแค่ต้องรู้วิธีแปลงสตริงที่ป้อนให้เป็นตัวอักษรพิมพ์เล็กทั้งหมด และย้ายจากโทเค็นหนึ่งไปอีกโทเค็น และแปลงหรือแยกตัวเลขจากสตริงเพื่อใช้เป็นจำนวนเต็ม
หากไม่ชัดเจน คุณสามารถอ่านบทความในห้องปฏิบัติการของฉันได้ที่ลิงก์นี้: http://www.cs.utk.edu/~cs102/robot_labs/Lab9.html
หากมีสิ่งใดไม่ชัดเจน โปรดแจ้งให้เราทราบ และเราจะชี้แจงให้ดีที่สุดเท่าที่จะทำได้