I don't get why my integer isn't coming out correctly, Console.Read() method says it's returning an integer, why isn't WriteLine displaying it correctly?
int dimension;
dimension = Console.Read();
Console.WriteLine(""+ dimension);
I don't get why my integer isn't coming out correctly, Console.Read() method says it's returning an integer, why isn't WriteLine displaying it correctly?
int dimension;
dimension = Console.Read();
Console.WriteLine(""+ dimension);
Console.Read() only returns the first character of what was typed. You should be using Console.ReadLine():
Example:
int suppliedInt;
Console.WriteLine("Please enter a number greater than zero");
Int32.TryParse(Console.ReadLine(), out suppliedInt);
if (suppliedInt > 0) {
Console.WriteLine("You entered: " + suppliedInt);
}
else {
Console.WriteLine("You entered an invalid number. Press any key to exit");
}
Console.ReadLine();
Additional Resources:
MSDN - Console.Read()
MSDN - Console.ReadLine()
The Console.Read method returns only a single character wrapped in an int, so that is only applicable if you are reading a number that is only one digit long, otherwise you'll always get only the first digit.
Since the return value of Read is actually a character, you cannot use it directly as an integer, you would need to parse it from character to integer.
But assuming that you want a number that is longer than one digit, then you really need to use Console.ReadLine instead and convert the input to an integer using int.TryParse. If int.TryParse returns false you can warn the user that he provided an invalid input and ask for the dimension again.
Sample code:
int dimension;
bool isValidDimension;
do
{
Console.Write("Dimension: ");
string input = Console.ReadLine();
isValidDimension = int.TryParse(input, out dimension);
if (!isValidDimension)
{
Console.WriteLine("Invalid dimension... please try again.");
Console.WriteLine();
}
} while (!isValidDimension);
Return Value
Type: System.Int32 The next character from the input stream, or negative one (-1) if there are currently no more characters to be read.
you should it as follow
static void Main()
{
int Number;
string strNumber;
strNumber = Console.ReadLine();
Number = int.Parse(strNumber);
Console.WriteLine("" + dimension);
}
Your program is returning but you're not seeing, would you please see below code block:
You are not be able to see the output if the output window doesn't stay.
int dimension;
dimension = Console.Read();
Console.WriteLine("" + dimension);
Console.ReadLine();
Console.Read() returns ASCII code of first symbol in input. You can do
int dimension;
dimension = Console.Read();
Console.WriteLine(""+ (char)dimension);
and you'll see right first symbol in input, as
(char)dimension
will give you symbol by it's ASCII code.
int a = 0;
if(Int32.TryParse(Console.ReadLine(), out a))
{
// Do your calculations with 'a'
}
else
{
// Some warnings
}