c++ 实现一个状态机 一共3个状态 1秒后自动切换状态
时间: 2024-01-27 14:05:33 浏览: 71
好的,以下是一个简单的C++状态机示例,其中有三个状态,每个状态持续1秒钟,然后自动切换到下一个状态。
```c++
#include <iostream>
#include <chrono>
#include <thread>
enum State {
STATE_1,
STATE_2,
STATE_3
};
int main() {
State current_state = STATE_1;
while (true) {
// 处理当前状态
switch (current_state) {
case STATE_1:
std::cout << "State 1" << std::endl;
break;
case STATE_2:
std::cout << "State 2" << std::endl;
break;
case STATE_3:
std::cout << "State 3" << std::endl;
break;
}
// 切换到下一个状态
switch (current_state) {
case STATE_1:
current_state = STATE_2;
break;
case STATE_2:
current_state = STATE_3;
break;
case STATE_3:
current_state = STATE_1;
break;
}
// 等待1秒钟
std::this_thread::sleep_for(std::chrono::seconds(1));
}
return 0;
}
```
在这个示例中,我们使用一个`enum`枚举类型来表示三个状态。在主循环中,我们处理当前状态的代码,并使用另一个`switch`语句自动切换到下一个状态。最后,我们使用`std::this_thread::sleep_for()`函数等待1秒钟,然后再次处理下一个状态。
希望这个示例对你有所帮助!
阅读全文