在C#中的控制台上打印ASCII字符

时间:2015-12-17 07:12:40

标签: c# console ascii

我需要让控制台打印ASCII char,每个" page"有22个字符。使用输入,例如"键",它们将打印接下来的22个ASCII字符,依此类推。问题出在"翻页"问题。

这是我的代码:

    static void Main(string[] args)
    {

        int i = 0;

        while (i <= 22)
        {
            Console.Write(i + " = " + (char)i);

            if (i < 22)
            {
                Console.Write((char)10);
            }

            i++;
        }

        Console.Write("Please press any key to turn page");

        Console.ReadKey();

        while (i > 22 && i <= 44)
        {
            Console.Write(i + " = " + (char)i);

            if (i < 44)
            {
                Console.Write((char)10);
            }

            i++;
        }

        Console.Write("Please press any key to turn page");

        Console.ReadKey();
    }

我本质上是一个新手。我自己学习大部分的东西,所以如果我在学术上难以忍受,请耐心地告诉我它是如何完成的。我可以从那里过来。提前谢谢。

2 个答案:

答案 0 :(得分:3)

据我所知,您试图以22个字符的部分打印所有ASCII表。

这基本上可以通过以下代码片段来完成:

for (int i = 1; i < 256; i++)
{
    Console.WriteLine(i + " = " + (char)i);

    if (i % 22 == 0)
    {
        Console.WriteLine("Please press any key to turn page");
        Console.ReadKey();
        Console.Clear();
    }
}

这里我们重复遍历ASCII表中的所有255个字符,逐行编写它们。

在打印完每个字符后,我们会检查它的第22个字符是否被计算(i % 22表示&#34;来自i的余数除以22&#34; - 因此它在22,44,66等时将是0。)

如果它是22,44,66等字符 - 我们打印我们的&#34;按任意键&#34;,读取输入然后清除屏幕。

那就是它。

答案 1 :(得分:2)

如果您不使用System.Text.Encoding.GetEncoding(28591);,控制台将为某些ASCII字符提供不同的符号或不正确的类型。有关GetEncoding(28591)

的更多信息
  

/*internal const int ISO_8859_1 = 28591;// Latin1;*/

using System;

namespace AsciiChart
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.GetEncoding(28591);
            for (int i = 0; i < 256; i++) {
                Console.Write(i+"=> ["+(char)i +"]  \n");
            }
            Console.ReadKey();
        }
    }
}

enter image description here

<强>编辑: 为了更好的格式,我用这个来编辑源代码。

 Console.Write(" "+(char)i );
   if (i % 16 == 0) { // 16*16 = 256
     Console.Write("\n");
 }