Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
143 views
in Technique[技术] by (71.8m points)

c# - Wrong integer output on Console.Read()

I'm trying to output a variable that I'm getting as an input from the user, but I get the wrong number.

Here is my code so far:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sequence
{
    class Program
    {
        static void Main(string[] args)
        {
            int userInput = Console.Read();

            Console.WriteLine("User input is: {0}", userInput.GetType());
            Console.WriteLine("User input is: {0}", userInput);
        }
    }
}

Output:

3
User input type is: System.Int32
User input is: 51
Press any key to continue

If I type 4, I get 52. 5, 53 and so on.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use Console.ReadLine() which returns string and you need to convert into int

Try this

namespace sequence
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.ReadLine();
            int userInput;
            if (!int.TryParse(input, out userInput))
            {
                Console.WriteLine("You have entered invalid number");
            }
            else
            {
                Console.WriteLine("User input is: {0}", userInput.GetType());
                Console.WriteLine("User input is: {0}", userInput);
            }
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();                
        }
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...