在C#中,我正在输入char输入,然后输出一些内容。但是在输入控制不等待输入和直接给出输出之后
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中,我正在输入char输入,然后输出一些内容。但是在输入控制不等待输入和直接给出输出之后相关的知识,希望对你有一定的参考价值。
我有以下代码:
使用系统;
namespace MyApp {
class KeyBoardInputTest {
static void Main() {
Console.Write("Enter a character > ");
char ch = (char)Console.Read();
Console.WriteLine("");
if(Char.IsLetter(ch)) {
if(Char.IsUpper(ch))
Console.WriteLine("You have entered an upper case character");
else
Console.WriteLine("You have entered a lower case character");
}
else if(Char.IsNumber(ch))
Console.WriteLine("You have entered a numeric character");
else
Console.WriteLine("You have entered a non alpha-numeric character");
Console.Read();
}
}
}
在接受输入之后,如果它直接显示结果而不等我按Enter键
使用Console.ReadLine()
给出错误 -
error CS0030: Cannot convert type 'string' to 'char'
使用Console.ReadKey()
给出错误 -
error CS0030: Cannot convert type 'System.ConsoleKeyInfo' to 'char'
答案
例如,try-parse:
Console.Write("Enter a character > ");
char ch;
char.TryParse(Console.ReadLine(), out ch);
Console.WriteLine();
如果用户在Enter之前输入太多字符或没有字符,您将获得空字符' '
。或者,您可以获取TryParse
的返回值,这是一个布尔值,表示解析是否成功。
另一答案
考虑转动代码以接受输入作为参数,并使用System类Convert.ToChar()将输入转换为char
using System;
namespace MyApp {
class KeyBoardInputTest {
static void Main(string [] args) { // This line has been changed
Console.Write("Enter a character > ");
char ch = Convert.ToChar(args[0]) // This line has been changed
Console.WriteLine("");
if(Char.IsLetter(ch)) {
if(Char.IsUpper(ch))
Console.WriteLine("You have entered an upper case character");
else
Console.WriteLine("You have entered a lower case character");
}
else if(Char.IsNumber(ch))
Console.WriteLine("You have entered a numeric character");
else
Console.WriteLine("You have entered a non alpha-numeric character");
Console.Read();
}
}
}
以上是关于在C#中,我正在输入char输入,然后输出一些内容。但是在输入控制不等待输入和直接给出输出之后的主要内容,如果未能解决你的问题,请参考以下文章
使用scanf从用户输入十六进制指令并将其保存在char中。 (C)