Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何接受两个输入之间的空格字符进行计算_C#_Input - Fatal编程技术网

C# 如何接受两个输入之间的空格字符进行计算

C# 如何接受两个输入之间的空格字符进行计算,c#,input,C#,Input,我想在C#的控制台应用程序中对两个输入进行加法。我不希望加法的用户输入与 2 8 2 8 产出:10 我希望它是这样的 2 8 2 8 产出:10 如何接受两个输入之间的空格字符并将其相加?我应该使用一个int变量还是两个int变量作为两个输入?谢谢。您需要按如下方式对输入进行string.Split() var inp = Console.ReadLine(); var split = inp.Split(' '); if (split.Length == 2 &a

我想在C#的控制台应用程序中对两个输入进行加法。我不希望加法的用户输入与

2

8
2 8 
产出:10

我希望它是这样的

2

8
2 8 
产出:10

如何接受两个输入之间的空格字符并将其相加?我应该使用一个int变量还是两个int变量作为两个输入?谢谢。

您需要按如下方式对输入进行string.Split()

var inp = Console.ReadLine();
var split = inp.Split(' ');

if (split.Length == 2 
    && int.TryParse(split[0], out var a)  // assumes C#7 feature of inline var declaration 
    && int.TryParse(split[1], out var b)  // for out parameters, else declare ints earlyer
)
{
    // do something with a and b which are ints....
}
else
{
    // either not enough or too many or non-int input by the usere. handle it.
}

只是为了好玩:如果你想对输入非常宽容,就像一行程序一样(我不,在生产代码中不做这样的事情;o),你可以这样做:

// needs: using System.Linq; in addition to using System;

var any = false;
var sum = 0l;

Console.WriteLine(                                    // write something
    Console.ReadLine()                                   // what you read via console input
       .Split(' ')                                       // thats being split by' '
       .Where(part => int.TryParse(part, out var _))     // only use things parsable as int
       .Aggregate("", (acc, part) =>   // for each thing you got, create a string starting
       {                               // with an empty string
           any = true;                 // remeber we had some valid input
           if (acc.Length > 0)         // already something in string? 
               acc += " + ";                // add " + " to it
           acc += part;                // add the string that is parsable to int to result

           sum += int.Parse(part);     // it is parseable, so parse and add up
           return acc;                 // return what we have agg'ed so far to next cycle
       }) + (any ? $" = {sum}" : "No valid numbers in input."));
       // check if we got any, if so add sum to the console output, else the agg is ""
       // and we output our "error" message
它将使用输入中的每个“正确”整数,并打印出正确整数的完整加法,如果它们适合
。它将忽略任何不可解析为整数的数字,因此不会添加
in.MaxValue+1
(太大),也不会添加小数。如果未检测到有效输入,您将收到一条消息:

输入:
hdfh 5 2h6 7-3-9 222222 76.43 2 3 4-1000


输出:
5+6+7+-3+-9+2+3+4+-1000=-985

你必须一步到位。然后你必须把它分开,然后再计算

        startPoint:
        int output = 0;
        Console.Write("Input : ");
        string input = Console.ReadLine();
        string[] inputArray = input.Split(' ');
        foreach (string eachInputValue in inputArray)
        {
            try
            {
                output += Convert.ToInt32(eachInputValue);
            }
            catch (Exception ex)
            {
                Console.WriteLine("\nPlease input numeric type\n");
                goto startPoint;
            }
        }
        Console.Write("Output : " + output);
        Console.ReadKey();
    }

感谢@PatrickArtner和@IvanStefanov提醒我代码的盲点。

查找
String.Split
以及如何将字符串转换为数字……欢迎使用堆栈溢出!检查如何创建“如何做”示例,以便更好地回答您的问题。@nelek您能用代码给出一个示例吗?@JulianAung Patrick已经写过了。
split.Length==2
?您是对的,因为在他的示例中,他要求两个数字。。。我的观点是,如果有两个以上的数字…@IvanStefanov,那么用户输入错误,惩罚他,让他戴上镣铐或戳他的眼睛;)@伊万斯特凡诺夫改变了我的想法,提出了一个非常宽松的版本——原因是我的地窖里满是戴着镣铐的错误输入者already@PatrickArtner你说得对D;)我们将得到applecow…;)首先,检查/尝试您的代码并尝试思考各种可能性,这里没有人会说“我知道的比您多”…您的代码可能会出现异常…您在Patrick之后5分钟提供答案,这样您就可以看到有关
TryParse
…无论如何,没有人会让您泄气,但没有人会“攻击”“你也是。帕特里克对他的评论很认真,我只是说了点幽默,没有侮辱你。我很抱歉,但我不知道牛头苹果或苹果树是什么意思。我认为这是“给谁一个思考的机会”。我说了这些。我找不到applecow的mean=“想想你代码的异常可能性。我的英语是垃圾,所以我真的很抱歉:(不管:)如果你想尝试了解一些linq:我在我的答案中添加了一个linq示例,它有点高级-通过评论进行记录。看看你是否能了解它:)linq有时真的很有用。哇,一个转到-有一段时间没看到了:)+1