C#控制台用户输入

好吧,我想首先说我不是学生所以这个问题与家庭作业完全无关.我正在努力学习C#,因为我想要工作的公司使用它.我听说C#与 java非常相似所以我正在使用我的java书来解决运动问题来练习c#.这是我的问题,我正在尝试创建一个简单的程序,用户输入3个等级并将其存储在一个数组中,然后显示输入的三个等级.问题是它没有存储成绩.然而它显示一些随机数,如果我输入34,44和54它返回51.这是我的代码并感谢大家:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Practice1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] test = new int[4];

            int i = 1;

            for (i = 1; i <= 3; i++)
            {
                Console.WriteLine("Please enter test " + i);
                test[i] = Console.Read();
                Console.ReadLine();

            }
            for (i = 1; i <=3; i++)
            {
                Console.WriteLine(test[i]);
                Console.ReadLine();
            }
        }
    }
}

解决方法

你的问题在这里:
test[i] = Console.Read();

这是将一个字符(这是一个整数字符代码)放入您的测试数组中.

相反

test[i] = int.Parse(Console.ReadLine());

编辑:如果你不确定用户会输入一个可解析的整数,也许他们会键入“six”,例如你可能会考虑使用try / catch(如果你想知道为什么它不会解析)或int.TryParse,返回true表示成功,并将解析后的整数分配给变量,字段或数组索引:

if(int.TryParse(Console.ReadLine(),out test[1])
   Console.WriteLine("Successfully parsed integer");
else
   Console.WriteLine("Please enter an integer.");

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString(&quot;x2&quot;));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable&lt;Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include &quot;WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...