You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PowerShell中运行Dart程序回车键无响应,需按Ctrl+D结束输入

问题解决:Dart程序回车键无法结束输入,需按Ctrl+D才能完成

问题描述

运行以下Dart代码时,输入内容后按回车键无法触发输入结束,必须先按Ctrl+D再回车才能完成流程,该问题在Windows 11的PowerShell、命令提示符中均出现:

import 'dart:io';
void main() {
    stdout.write("Enter your name:");
    String? name = stdin.readLineSync();    
    print("Hello $name");
}

示例异常输出:

Enter your name:fred

^D
Hello fred

解决方案

  • 强制刷新输出缓冲区
    stdout.write() 默认采用行缓冲模式,在Windows环境下可能导致提示信息未即时输出,干扰输入结束信号的识别。在 stdout.write() 后添加 stdout.flush() 强制刷新缓冲区,确保提示信息立即显示,回车键即可正常触发输入结束:

    import 'dart:io';
    void main() {
        stdout.write("Enter your name:");
        stdout.flush(); // 强制刷新输出缓冲区
        String? name = stdin.readLineSync();    
        print("Hello $name");
    }
    
  • 升级Dart SDK至最新稳定版
    部分旧版本Dart SDK在Windows终端环境下存在标准输入处理的兼容性bug,升级到最新稳定版可修复此类问题。打开终端执行以下命令完成升级:

    dart pub global activate dart_updater
    dart_updater update
    
  • 调整终端输入模式
    若上述方法无效,可尝试关闭Windows终端的快速编辑模式:

    • 右键终端标题栏,选择「属性」
    • 切换到「选项」标签页,取消勾选「快速编辑模式」
    • 点击「确定」保存设置后重启终端

内容的提问来源于stack exchange,提问作者LorenBoyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:32:40