提问人:Thend 提问时间:9/30/2021 最后编辑:James ZThend 更新时间:9/30/2021 访问量:677
清除 Console.ReadLine 和 Console.Read [duplicate] 之间的控制台缓冲区
Clear console buffer between Console.ReadLine and Console.Read [duplicate]
问:
我是 C# 的初学者,所以请耐心等待我。:)我正在练习编写一个简单的 C# 代码来理解这种语言的工作原理。我尝试从控制台读取字符、整数和字符串,但在不同的尝试/方法之间,缓冲区永远不会清空。我想清除每个方法之间的控制台缓冲区,例如:
using System;
namespace ElsoKonzolAppom
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Write something!");
string text1 = Console.ReadLine();
Console.WriteLine("Your text:" + text1);
//here, I would like to clear the buffer
int number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Your first number:" + number1);
//here, I would like to clear the buffer
int number2 = Console.Read();
Console.WriteLine("Your second number:" + number2);
}
}
}
可能这是一件非常琐碎的事情,我还没有掌握。
答:
1赞
Martin.Martinsson
9/30/2021
#1
据我所知,您想清除输入缓冲区吗?控制台类中没有它的方法。试试这个:
while(Console.KeyAvailable)
Console.ReadKey(false); // skips previous inputs
Console.ReadKey(); // reads a new char
如果不想打印跳过的字符,请使用。Console.ReadKey(true)
如果要清除屏幕,请使用:
Console.Clear()
问候
评论
0赞
Thend
9/30/2021
嗨,马丁,我已经尝试了两个,但不知何故我无法取回第二个号码。这就是我得到的:写点东西!asdf 您的文本:asdf 5 您的第一个号码:5 6 您的第二个号码:54
0赞
Amara Miloudi
9/30/2021
#2
你可以使用 Console.ReadKey(false);true = 隐藏输入
评论
0赞
Thend
9/30/2021
嗨,阿玛拉,我已经试过了,但由于某种原因,第二个数字增加了。
评论
int number2 = Console.Read()