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

输入小数后程序崩溃及Notepad++控制台无法输入问题求助

问题分析与解决

1. 输入小数程序崩溃的原因

你的代码存在类型转换逻辑错误:

  • 变量posx、posy、posz声明为double类型(支持小数),但你使用Convert.ToInt32(Console.ReadLine())将用户输入的字符串强制转换为整数。
  • 当输入小数(如3.14)时,Convert.ToInt32()无法解析带小数的字符串,会直接抛出FormatException异常,导致程序崩溃。

修复方案

将转换方法替换为Convert.ToDouble(),或者用更健壮的double.TryParse()(可处理非法输入,避免程序直接崩溃)。

基础修复代码:

using System;

namespace ProgramPractice4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please give me a number. Decimals are allowed.");
            double posx = Convert.ToDouble(Console.ReadLine());
            
            Console.WriteLine("Please give me another number. Decimals are allowed.");
            double posy = Convert.ToDouble(Console.ReadLine());
            
            Console.WriteLine("Please give me one more number. Decimals are allowed.");
            double posz = Convert.ToDouble(Console.ReadLine());
            
            Console.WriteLine(posx + posy + posz);
        }
    }
}

健壮性优化代码(处理非数字输入):

using System;

namespace ProgramPractice4
{
    class Program
    {
        static void Main(string[] args)
        {
            double posx;
            Console.WriteLine("Please give me a number. Decimals are allowed.");
            while (!double.TryParse(Console.ReadLine(), out posx))
            {
                Console.WriteLine("Invalid input, please enter a valid number:");
            }
            
            double posy;
            Console.WriteLine("Please give me another number. Decimals are allowed.");
            while (!double.TryParse(Console.ReadLine(), out posy))
            {
                Console.WriteLine("Invalid input, please enter a valid number:");
            }
            
            double posz;
            Console.WriteLine("Please give me one more number. Decimals are allowed.");
            while (!double.TryParse(Console.ReadLine(), out posz))
            {
                Console.WriteLine("Invalid input, please enter a valid number:");
            }
            
            Console.WriteLine(posx + posy + posz);
        }
    }
}

2. Notepad++控制台无法输入的问题

Notepad++内置控制台不支持交互式输入,它仅用于显示编译、运行的输出日志,无法接收用户输入。解决方式:

  • 先通过csc命令行编译器(需安装.NET SDK)将代码编译为.exe可执行文件。
  • 打开系统命令提示符(CMD)或PowerShell,导航到exe文件所在目录,运行该文件即可正常输入内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:15:14