first Console.ReadLine()立即返回
本文关键字:返回 Console ReadLine first | 更新日期: 2023-09-27 18:18:48
我在写一个很傻的程序。
我不知道为什么下面的代码不能工作:
static void Main(string[] args){
<Some silly code>
Console.WriteLine("Please choose the lab you are working on:");
int choose = Console.Read();
<Some more silly code, including 1 Console.writeLine() call >
Console.WriteLine("Enter the DB server location");
string DBServer = Console.ReadLine();
Console.WriteLine("Enter the DB name");
string DBName = Console.ReadLine();
}
当我运行程序时,它从不等待第一个ReadLine语句
string DBServer = Console.ReadLine();
立即打印这两行
Enter the DB server location
Enter the DB name
然后读取第二个ReadLine string DBName = Console.ReadLine();
当我检查输入表单user时,它确实读取了第二个字符串,但第一个字符串显示为空。
什么好主意吗?
这是因为您使用的是Console.Read
,它将到达一个字符,但将在它之后单独留下回车符。然后由ReadLine
拾取。
Input是一个流。当你输入一个字符然后回车时,流中有2-3个字符(取决于系统):你输入的字符和换行符。Read
仅为您提供流中的下一个字符,而ReadLine
将读取直到下一个换行符的所有内容。还是从小溪里。所以你的Read
获取一个字符,ReadLine已经找到下一个换行符,因此继续愉快。
您可以插入一个假的ReadLine
,或者使用ReadKey
,它只读取一个键,在您的程序看到输入之前不需要返回,或者使用ReadLine
作为单字符输入。