Dart中stdin.readLineSync无法接收用户回车输入的问题
Dart CLI 输入无响应问题排查与解决
针对你遇到的Dart CLI程序输入无响应问题,可按以下步骤排查解决:
1. 强制刷新输出缓冲
Windows环境下,stdout默认采用行缓冲机制,部分场景下输出不会立即显示到控制台。在输出提示文本后添加stdout.flush()强制刷新缓冲,确保提示信息及时显示:
import 'dart:io'; void main() { stdout.writeln('Enter text: '); stdout.flush(); // 强制刷新输出缓冲 var input = stdin.readLineSync(); stdout.writeln('Entered $input'); }
2. 确认VSCode终端配置生效
将dart.cliConsole设置为terminal后,重启VSCode使配置生效。同时可尝试切换终端类型:在VSCode终端中点击下拉菜单,选择"Command Prompt"替代PowerShell,部分场景下PowerShell的交互兼容性较差。
3. 正确编译与运行程序
- 编译时使用官方推荐命令生成可执行文件:
dart compile exe your_script.dart - 在CMD窗口中直接运行生成的
.exe文件,避免通过第三方工具或间接方式启动程序。 - 检查Dart SDK版本,升级到最新稳定版(可通过
dart --version查看版本,下载最新版覆盖安装即可)。
4. 排查系统环境干扰
- 暂时关闭杀毒软件或防火墙,部分安全软件可能拦截Dart程序的输入输出交互。
- 尝试以管理员身份运行CMD窗口,避免权限不足导致的交互异常。
内容的提问来源于stack exchange,提问作者tomsyty
相关产品推荐
相关产品推荐

