vscode 无法输入输出

文章讲述了在使用VSCode进行C++测试时遇到内置终端无输出和无法输入的问题,解决方案包括切换到外部终端或者在settings和task.json中进行配置。通过创建一个task并在Terminal中运行,可以调出Code控制台实现输入输出。完成后,无需该临时task,调试cpp文件时会正常显示控制台。

c++测试时终端没有输出、无法输入

1、这里采用integrated consle(内置控制台),如果想用系统控制台就将launch.json中"externalConsole":true,设置为true

2、output输出和terminal输出,在setting->run in terminal选择勾选后会在terminal输出

 3、没有输出,也无法输入

采用外部终端可以输入,但内置终端没有输出也没有输入,这是因为vscode有多个terminal,程序运行结果在Code终端输出

右侧有四个控制台,分别有特定功能,而我们的程序结果在Code输出,需要手动调出

方法:在task.json中布置一个task,如下(下图折叠了第一个{...}),在第一个任务后面要加逗号

 然后Terminal->Run Task->选echo(上图中布置的task的任务名,label即为task的名字),然后一直选第一项。

 最后会出现一个名为echo的terminal,这一步是为了调出终端而写了一个小任务,完成之后将这个任务删除。

之后再debug自己的cpp文件就会出现Code控制台,然后就可以输入输出了。

### ### 在 VSCode 中实现控制台 I/O 操作 在 VSCode 使用 PlatformIO 插件开发 Arduino 或 ESP32/ESP8266 项目时,可以通过 `Serial` 对象完成串口通信来模拟标准输入输出功能[^1]。尽管硬件平台本身不支持传统意义上的 C++ 标准库 `<iostream>` 的文件描述符重定向,但可以借助 `printf()` 和 `scanf()` 函数或者通过 `Serial.print()` 和 `Serial.readString()` 方法实现类似的控制台交互效果。 以下是具体方法: #### #### 示例代码展示 下面是一个简单的例子,演示如何利用 `Serial` 实现基本的输入输出操作。 ```cpp #include <Arduino.h> void setup() { Serial.begin(9600); // 初始化串口通讯波特率为 9600bps } void loop() { if (Serial.available()) { // 如果有数据可读取 String inputString = Serial.readString(); // 从串口中读取字符串直到遇到超时或终止字符 Serial.println("您输入的是: " + inputString); // 将接收到的数据回显至串口监视器 } } ``` 上述代码片段展示了如何初始化串口并处理来自用户的简单输入输出请求。当用户向设备发送消息时,程序会捕获这些消息并通过串口返回给用户确认信息。 需要注意的一点是,在某些情况下如果仅依赖于默认缓冲机制可能会导致部分数据丢失现象发生[^2]。因此建议手动调用刷新函数以确保所有待传输的信息能够及时送达目标端。 另外值得注意的地方在于实际应用过程中可能还需要考虑更多细节比如设置合适的超时时间参数以及错误检测逻辑等等以便更好地满足特定应用场景下的需求。 --- #### § 相关问题 § 1. 如何调整串口波特率以适应不同速度的数据交换? 2. 是否可以在没有物理连接的情况下测试串口打印功能?如果有,请问有哪些工具推荐? 3. 当前环境下除了使用 `Serial.read*` 系列命令外还有哪些其他方式获取外部传感器传来的数值? 4. 面对多线程或多任务场景下该如何安全有效地管理共享资源如全局变量之类的东西呢? 5. 能否详细介绍下关于 `PlatformIO` 自定义构建选项配置流程吗?
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值