爲什麼輸出不是我想要什麼......錯誤輸出控制檯.NET
下面的代碼:
int num;
Console.WriteLine("Please input age: ");
num = Console.Read();
Console.WriteLine(num);
比如我輸入5,輸出爲53.需要5,代碼上發生了什麼。有人可以解釋嗎?謝謝。
爲什麼輸出不是我想要什麼......錯誤輸出控制檯.NET
下面的代碼:
int num;
Console.WriteLine("Please input age: ");
num = Console.Read();
Console.WriteLine(num);
比如我輸入5,輸出爲53.需要5,代碼上發生了什麼。有人可以解釋嗎?謝謝。
因爲Console.Read()返回流中的下一個字符的字符代碼。的「5」的字符的ASCII碼是53.
你需要閱讀整行作爲一個字符串
string str = Console.Readline();
,然後Parse()
它或它TryParse()
。
int num;
try
{
num = int.Parse(str);
}
catch(Exception e)
{
Console.Writeline("Not a number!");
}
根據該Read方法的文檔:
讀取來自標準輸入流的下一個字符。
因此,這將返回用戶輸入的單個字符的ASCII值。
你需要閱讀整條生產線,並解析字符串返回到一個整數:
int num;
Console.WriteLine("Please input age: ");
num = int.Parse(Console.ReadLine());
Console.WriteLine(num);
當然如果用戶輸入一個無效的整數這個分析可能會失敗。所以,你可以處理這樣的:
int num;
Console.WriteLine("Please input age: ");
if (!int.TryParse(Console.ReadLine(), out num))
{
Console.WriteLine("Please enter a valid age");
}
else
{
Console.WriteLine(num);
}
這個例子和你研究ASP.NET的事實有一些關係嗎?如果是,請解釋。 – Tigran