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

C#输入空白字符无法跳出文件写入死循环问题咨询

问题原因
  • 逻辑顺序错误:代码先执行writer1.WriteLine(writing)写入操作,再判断输入是否为空白。即便输入符合退出条件,也会先把空白内容写入文件后才退出,不会提前终止。
  • 空白匹配范围不全:当前仅判断了单个空格" "和空字符串""两种情况,用户输入多个空格、制表符等全空白内容时,无法触发退出逻辑。
  • 未处理边缘情况:未覆盖Console.ReadLine()返回null的场景(比如用户按下Ctrl+Z结束输入),直接判断可能触发空引用异常。
修复方案

调整写入循环的逻辑顺序,先判断输入是否为全空白内容,符合条件直接退出,不符合再写入文件。可以直接调用C#内置的string.IsNullOrWhiteSpace()方法,该方法会自动匹配空字符串、null、任意数量的空白字符(空格、制表符、换行符等),不用手动逐个枚举判断。

修复后的核心代码片段如下:

while (true)
{
    Console.WriteLine("What do you want to drive on the file? write a blank space to finish");
    writing = Console.ReadLine();
    // 先判断是否符合退出条件
    if (string.IsNullOrWhiteSpace(writing))
    {
        break;
    }
    // 符合写入条件再执行写入
    writer1.WriteLine(writing);
}

内容的提问来源于stack exchange,提问作者Juan Andres Gomez Botero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:03