我不知道为什么我的整数没有正确输出,Console.Read()方法说它返回一个整数,为什么WriteLine没有正确显示它?
int dimension;
dimension = Console.Read();
Console.WriteLine(""+ dimension);
答案 0 :(得分:6)
Console.Read()
仅返回键入内容的第一个字符。您应该使用Console.ReadLine()
:
示例:强>
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();
其他资源:
MSDN - Console.Read()
MSDN - Console.ReadLine()
答案 1 :(得分:0)
Console.Read
方法只返回int
中包含的单个字符,因此仅在您读取的数字只有一位数时才适用,否则您将始终只获取第一位数。
由于Read
的返回值实际上是一个字符,因此不能直接将其用作整数,您需要将其从字符解析为整数。
但假设您想要一个长于一位数的数字,那么您确实需要使用Console.ReadLine
,并使用int.TryParse
将输入转换为整数。如果int.TryParse
返回false
,您可以警告用户他提供了无效的输入并再次询问维度。
示例代码:
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);
答案 2 :(得分:0)
返回值
类型:System.Int32输入流中的下一个字符,或 如果当前没有更多字符,则为负一(-1) 读取。
答案 3 :(得分:0)
你应该按照以下方式
static void Main()
{
int Number;
string strNumber;
strNumber = Console.ReadLine();
Number = int.Parse(strNumber);
Console.WriteLine("" + dimension);
}
答案 4 :(得分:0)
你的程序正在返回,但你没有看到,请问下面的代码块:
如果输出窗口没有停留,您将无法看到输出。
int dimension;
dimension = Console.Read();
Console.WriteLine("" + dimension);
Console.ReadLine();
答案 5 :(得分:0)
Console.Read()返回输入中第一个符号的ASCII码。你可以做到
int dimension;
dimension = Console.Read();
Console.WriteLine(""+ (char)dimension);
并且您将在输入中看到正确的第一个符号,如
(char)dimension
将通过它的ASCII码给你符号。
答案 6 :(得分:0)
int a = 0;
if(Int32.TryParse(Console.ReadLine(), out a))
{
// Do your calculations with 'a'
}
else
{
// Some warnings
}