0

我有一个二维数组和一个循环,它使用 Console.Write 和 Console.WriteLine 打印数组中的所有元素。但是,命令行不会显示数组的所有元素。我尝试通过将输出打印到文本文件来进行调试。当我查看文本文件时,我看到它包含预期输出的一部分,命令行包含预期输出的另一部分,有一些重叠。有谁知道这个问题的可能解决方案?

public void Print()
{
    TextWriter tw = new StreamWriter("output.txt");
    //Prints the accessed coordinates and how many times it was accessed
    for(int i = 0; i < 20; i++)
    {
        for(int j = 0; j < 25; j++)
        {
            Console.Write("Coordinate " + grid[i, j].getCoordinates() + ": ");
            Console.WriteLine(grid[i, j].getAccessed()); 
            string text = "Coordinate " + grid[i,j].getCoordinates() + ": " + grid[i,j].getAccessed() + "";
            tw.WriteLine(text);
        }
    }
}
4

2 回答 2

3

我认为您超出了控制台可以显示的行数。

尝试这个: Console.BufferHeight = 500;

于 2013-12-22T03:39:13.347 回答
1

我没有在您的代码中发现任何错误,但是您可以做两件事。

AutoFlush在对流进行任何写入之前启用并签出文件。

1.

TextWriter tw = new StreamWriter("c:\\textwriter.txt");
tw.AutoFlush = true;

或者

public void Print()
{
    TextWriter writeFile = new StreamWriter("c:\\textwriter.txt");

    for(int i = 0; i < 20; i++)
    {
        for(int j = 0; j < 25; j++)
        {
            writeFile.WriteLine("Coordinate " + grid[i,j].getCoordinates() + ": " + grid[i,j].getAccessed() + "");
            writeFile.Flush();
        }
    }
    writeFile.Close();
    writeFile = null;

}

2.实现异常处理。

于 2013-12-22T03:13:54.167 回答