cin的一个小细节

用cin从控制台输入字符的时候,常常有违法输入的情况,比如,给一个int型变量初始化为char型字符。


当出现这种情况的时候cin中的一个标志位会被置为错误码,范围是1-4,也就是非0,当cin中错误码为非0的时候,用户无法再次调用cin输入,而这时候,如果调用clear方法,该标志位则会清零,如果想清空输入缓冲区内的数据,则需要再调用一次sync方法,这时候cin会恢复初始状态,接受任何输入。

在C++设计一个小游戏可以是一个相当大的主题,因为有许多不同类型的游戏可以选择,比如控制台命令行游戏、图形界面游戏、甚至是简单的文本冒险游戏。这里我将简述如何用C++创建一个基本的控制台打砖块游戏,作为入门示例: 首先,你需要了解一些基本概念,如面向对象编程、事件处理(例如按键输入)、数组操作(用于表示砖块)以及循环和条件判断。 1. **设计类**: - 创建`Ball`类,代表游戏中的球,包含位置、速度等属性; - 创建`Paddle`类,玩家通过控制它击打球,有位置和宽度属性; - 创建`BrickWall`类,表示砖墙,由一系列砖块组成。 2. **用户输入**: 使用`cin`获取用户输入,如键盘按键,更新`Paddle`的位置。 3. **游戏循环**: - 主游戏循环不断运行,检查碰撞(球与墙、球与Paddle)并相应地改变状态(比如移动、反弹、得分); - 使用定时器控制球的速度和动画效果。 4. **显示信息**: 由于是控制台游戏,可能会简单地打印出游戏状态和得分,而不是图形渲染。 ```cpp #include <iostream> #include <vector> // ... 定义类... int main() { Ball ball; Paddle paddle; BrickWall wall; while (true) { // 用户输入处理... if (checkCollision(ball, paddle)) { // 处理碰撞... } // 更新游戏状态... ball.move(); displayStatus(); // 检查游戏结束条件(如球撞到底部或者所有砖块都被击破) if (gameEnded()) { break; } } return 0; } // ... 实现细节和函数... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值