如何使用Console.Read()获得两个数字
本文关键字:两个 数字 Read 何使用 Console | 更新日期: 2023-09-27 18:08:55
我的问题是如何使用Console.Read()两个数字。当我运行代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
{
class Program
{
static void Main(string[] args)
{
int number1, number2, temp;
Console.WriteLine("Enter the first number:'n");
number1 = Console.Read();
Console.WriteLine("'nEnter the Second number:'n");
number2 = Console.Read();
Console.WriteLine("'nBefore swap, number1={0}, number2={1}'n", number1, number2);
temp = number1;
number1 = number2;
number2 = temp;
Console.WriteLine("'nAfter swap, number1={0}, number2={1}'n", number1, number2);
}
}
}
只允许输入一个数字,然后输出运行结果:
Enter the first number:
12
Enter the Second number:
Before swap, number1=49, number2=50;
After swap, number1=50,number2=49;
它不执行我输入的数字1。49 50是什么意思?
我还写了另一个代码,它工作正常:
int number1, number2,temp;
Console.WriteLine("Enter the first number:'n");
number1 = Int32.Parse(Console.ReadLine());
Console.WriteLine("'nEnter the Second number:'n");
number2 = Int32.Parse(Console.ReadLine());
Console.WriteLine("'nBefore swap, number1={0}, number2={1}'n", number1, number2);
temp = number1;
number1 = number2;
number2 = temp;
Console.WriteLine("'nAfter swap, number1={0}, number2={1}'n", number1, number2);
Console.Read()
返回一个字符值,而不是输入的数字。另外,它只返回输入的第一个字符。实现您正在尝试的一个好方法是编写一个自定义方法来使用Console.ReadLine()
读取数字,如下所示:
public static int ReadInt()
{
string inputString = Console.ReadLine(); // Read the string
int intValue;
if (int.TryParse(inputString, out intValue)) // Try to parse the string, if it succeeds, it'll be put in intValue
{
return intValue;
}
return 0; // Invalid input, return 0 or something else
}
问题是,你没有使用Console.ReadLine
在你的第一个例子;你正在使用Console.Read
。
第一个Console.Read
接受一个字符——在你的例子中是1
。根据这个ASCII表,1
字符对应于(int) 49。第二个Console.Read
同样接受第二个字符2
,并将其转换为50。