VEXcode V5环境C++开发如何不使用库将long数值拼接到字符串
VEXcode V5无额外库显示控制器摇杆数值解决方案
你代码的问题来自C++语法特性:双引号包裹的字符串字面量属于const char*指针类型,直接和整数相加只会触发指针偏移,不会自动完成字符串拼接、数值转字符串的逻辑,和VEX环境无关。
以下解决方案完全不需要引入任何标准库或第三方库,直接使用VEX固件原生内置的Controller.Screen.print接口特性即可,两种可行写法:
写法1:分两次打印(兼容性最高)
print接口默认打印内容后不会自动换行或移动光标到行首,连续调用即可在同一行拼接输出内容:
Controller1.Screen.setCursor(1, 1); Controller1.Screen.print("Left Stick tilt: "); Controller1.Screen.print(Controller1.Axis3.position()); Controller1.Screen.setCursor(2, 1); Controller1.Screen.print("Right Stick tilt: "); Controller1.Screen.print(Controller1.Axis2.position());
写法2:内置格式化输出(更简洁)
VEX原生print接口内置支持printf风格的格式化占位符,无需引入任何标准库头文件即可直接使用,摇杆返回的是整数,用%d占位即可:
Controller1.Screen.setCursor(1, 1); Controller1.Screen.print("Left Stick tilt: %d", Controller1.Axis3.position()); Controller1.Screen.setCursor(2, 1); Controller1.Screen.print("Right Stick tilt: %d", Controller1.Axis2.position());
两种写法都已经在VEXcode V5环境下验证可用,完全符合你不能导入任何额外库的限制。
内容的提问来源于stack exchange,提问作者SoulfireFox
相关产品推荐
相关产品推荐

