无法在控制台中写入字符
Can't write char in console
我想在控制台写一个字符。
这是我的代码。
using System;
namespace bla
{
class MainClass
{
public static void Main (string[] args)
{
int d = 5;
char e = (char)d;
Console.WriteLine("my Char: " + e);
Console.WriteLine("my Char: " + e.ToString ()); // also doesn't work
}
}
}
相反,我只看到 "my Char: " 作为输出,而不是预期的 "my Char: 5"。
您希望 char e = '5';
将“5”打印到控制台。
当你有
int d = 5;
char e = (char)d;
您正在打印一个 值 5 的字符,这是您问题的评论中指出的 Enquiry character,而不是 字符 "5".
字符“5”有 ASCII value53(0x35
十六进制 - 在 ASCII 中 0x30
是“0”,0x39
是“9”,并且其他数字是 0x3{d}
,其中 {d}
是数字);您也可以修改您的代码以通过这种方式打印“5”:
char e = 0x35;
请注意,您无需在此处投射。但是如果你想要从int
转换为char
,你可以使用
int d = 0x35;
char e = (char)d;
您可以自己检查,方法如下
char e = 0x35;
char f = '5';
bool check = e == f; // true
如果您希望打印的字符有所不同,您可以改为执行类似
的操作
private void printNumberToConsole(int number)
{
if ( number < 0 || number > 9 )
throw new ArgumentException("'number' must be between 0 and 9");
char e = '0' + (char)number; // '0' == 0x30
Console.WriteLine("my Char: " + e);
}
将 5 转换为 char 会得到此 ASCII table 中的第 5 个值。
它在控制台中没有显示任何内容,因为它不是 printable 字符。
如果您注意到 table 中的数字从 48(即数字 0)到 57(即数字 9)开始。
所以你必须这样做。
int d = 5;
char e = (char)(d + 48);
Console.WriteLine("my Char: " + e);
Console.WriteLine("my Char: " + (char)(5 + '0')); // or
您不需要将 5
转换为 char
,以下代码将起作用:
int d = 5;
Console.WriteLine("my Char: " + d.ToString ());
我想在控制台写一个字符。
这是我的代码。
using System;
namespace bla
{
class MainClass
{
public static void Main (string[] args)
{
int d = 5;
char e = (char)d;
Console.WriteLine("my Char: " + e);
Console.WriteLine("my Char: " + e.ToString ()); // also doesn't work
}
}
}
相反,我只看到 "my Char: " 作为输出,而不是预期的 "my Char: 5"。
您希望 char e = '5';
将“5”打印到控制台。
当你有
int d = 5;
char e = (char)d;
您正在打印一个 值 5 的字符,这是您问题的评论中指出的 Enquiry character,而不是 字符 "5".
字符“5”有 ASCII value53(0x35
十六进制 - 在 ASCII 中 0x30
是“0”,0x39
是“9”,并且其他数字是 0x3{d}
,其中 {d}
是数字);您也可以修改您的代码以通过这种方式打印“5”:
char e = 0x35;
请注意,您无需在此处投射。但是如果你想要从int
转换为char
,你可以使用
int d = 0x35;
char e = (char)d;
您可以自己检查,方法如下
char e = 0x35;
char f = '5';
bool check = e == f; // true
如果您希望打印的字符有所不同,您可以改为执行类似
的操作private void printNumberToConsole(int number)
{
if ( number < 0 || number > 9 )
throw new ArgumentException("'number' must be between 0 and 9");
char e = '0' + (char)number; // '0' == 0x30
Console.WriteLine("my Char: " + e);
}
将 5 转换为 char 会得到此 ASCII table 中的第 5 个值。
它在控制台中没有显示任何内容,因为它不是 printable 字符。
如果您注意到 table 中的数字从 48(即数字 0)到 57(即数字 9)开始。
所以你必须这样做。
int d = 5;
char e = (char)(d + 48);
Console.WriteLine("my Char: " + e);
Console.WriteLine("my Char: " + (char)(5 + '0')); // or
您不需要将 5
转换为 char
,以下代码将起作用:
int d = 5;
Console.WriteLine("my Char: " + d.ToString ());