【问题标题】:How do I print out each character from a text file如何从文本文件中打印出每个字符
【发布时间】:2021-07-25 09:51:36
【问题描述】:

我有一个包含 Maze Ascii 模式的文本文件,我希望能够检索 Maze Ascii 的 [x,y] 位置。

我的目标是创建一个带有在文本文件之外绘制的玩家的迷宫游戏,我希望能够在迷宫 ASCII 上移动我的玩家,但是为了让我这样做,我需要能够访问迷宫 ascii 的每个 x,y 位置,以将我的光标位置设置为这些坐标。

下面的代码是我目前拥有的代码,它是我的迷宫游戏的另一个级别。它将文本文件存储为一个名为“路径”的变量。创建一个名为 lines 的字符串,读取文本文件的所有行。然后 for 循环打印出文本文件的每一行。

如何打印出文本文件的每个字符/元素而不是打印出每一行?我希望能够检索文本文件的 x 和 y 位置。不知道该怎么做。谁能帮帮我?

谢谢


public static void Level2()
        {
            var path = @"C:\Level2.txt";
            string[] lines = File.ReadAllLines(path, Encoding.UTF8);
            foreach(string line in lines)
            {
                Console.WriteLine(line);
            }
        }

【问题讨论】:

  • 新建一个二维数组。将 line.ToCharArray() 推入数组,完成。 docs.microsoft.com/de-de/dotnet/api/… 之后你可以简单地通过 myCharArray[x][y] 访问它,只要确保 x 和 y 在数组的边界内
  • 不管怎样,render 在这里是一个比 print out 更好的动词。因为您发布了一些代码,所以我们都能够理解您的问题,但是 打印出来 往往意味着在打印机上渲染某些内容。在您的情况下,您正在向控制台呈现一些 ASCII 艺术。要记住的东西

标签: c# multidimensional-array console-application text-files maze


【解决方案1】:

每个string 也是characters 的集合。

您可以使用例如ToCharArray 分割每一行:

string s = 
@"abc
def";
File.WriteAllText("maze.txt", s);

var maze = File.ReadLines("maze.txt")
          .Select( l => l.ToCharArray())
          .ToArray();

Console.WriteLine(maze[1][2]); // 2nd line, 3rd character - 'f'

【讨论】:

    【解决方案2】:

    希望下面的逻辑对您尝试打印文本文件中的每个指定字符有帮助

    
    //read all lines of the file into an array
    
    //declare a Boolean variable to track if the user/password exists
    
    //foreach string in the array
    
      //split the line on comma and store in an array X
    
     //Then print each char using .char on the x array
    

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      相关资源
      最近更新 更多