如何用C语言编写一个实现连续导航功能的代码示例?
时间: 2024-10-21 09:10:14 浏览: 34
在C语言中,为了实现一个简单的连续导航功能,我们可以假设我们有一个模拟车辆移动的程序,该程序接收指令并持续前进或转向。以下是一个基本的例子,使用结构体表示车辆状态,以及命令队列来支持连续输入的导航指令:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int x, y; // 车辆当前位置
int direction; // 0 表示向前,1 表示向右
} Vehicle;
Vehicle vehicle = {0, 0, 0}; // 初始化车位置为原点
// 模拟车辆移动
void move(Vehicle* v, char command) {
switch(command) {
case 'F':
v->x++;
break;
case 'R':
v->direction = (v->direction + 1) % 2; // 右转,方向取模2(0->1, 1->0)
break;
case 'L':
v->direction = (v->direction - 1 + 2) % 2; // 左转
break;
case 'Q':
printf("当前位置: (%d,%d), 方向: %d\n", v->x, v->y, v->direction);
break;
default:
printf("无效的命令 '%c'\n", command);
break;
}
}
int main() {
char input[5]; // 用户输入指令
while (fgets(input, sizeof(input), stdin)) { // 从标准输入读取
input[strcspn(input, "\n")] = '\0'; // 删除行尾的换行符
move(&vehicle, input[0]); // 执行用户输入的指令
}
return 0;
}
```
在这个例子中,用户通过键盘输入命令,如 'F' 表示向前,'R' 表示右转,'L' 表示左转,'Q' 查看当前位置和方向。程序会持续处理新的输入,直到用户停止输入。
阅读全文