繁体   English   中英

System.FormatException:输入字符串的格式不正确。 c#

[英]System.FormatException: Input string was not in a correct format. c#

对不起,如果它是重复的。 我什至不知道该写什么作为标题。

介绍:
我试图将加法器作为控制台应用程序。
问题:
当我运行程序时,一切正常,直到第 24 行。 它会显示一个错误。 (图 1)
我尝试了什么:
没有什么。 当我查看代码时,我没有看到任何错误。

谢谢

代码:

void write(string towrite)
{
    Console.WriteLine(towrite);
}

//Lets make calculator
string inputoutput;
int num1;
int num2;
write("CALCULATOR");
write("__________");
write("");
write("Write addition problem:");
scitani:
inputoutput = Console.ReadLine();
num1 = Convert.ToInt32(inputoutput.Substring(0, inputoutput.IndexOf('+')));
num2 = Convert.ToInt32(inputoutput.Substring(num1.ToString().Length + 1, 0));
inputoutput = Convert.ToString(num1 + num2);
Console.Clear();
write("CALCULATOR");
write("__________");
write(inputoutput);
goto scitani;

对不起,我是捷克人,我在捷克有 VS。 在img中可以看到。 1.

图片 1

您想在没有第二个参数的情况下使用Substring ,然后将剩余部分取出直到结束,否则您取出指定长度的部分。

如果您处理用户输入,您还应该使用int.TryParse 这是一个示例:

void Main()
{
    int? result = CalcPlus("10 + 17");
    Console.WriteLine(result);
}

static int? CalcPlus(string input)
{
    int plusIndex = input.IndexOf('+');
    if(plusIndex == -1)
    {
        return null;
    }
    
    string first = input.Remove(plusIndex).Trim(); // same as Substring(0, plusIndex).Trim()
    string last = input.Substring(plusIndex + 1).Trim();
    
    if(!int.TryParse(first, out int firstInt))
    {
        return null;
    }
    
    if(!int.TryParse(last, out int lastInt))
    {
        return null;
    }
    
    return firstInt + lastInt;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM