命令行不显示所有输出

时间:2013-12-22 02:48:33

标签: c# arrays console.writeline

我有一个2维数组和一个循环,它使用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);
        }
    }
}

2 个答案:

答案 0 :(得分:3)

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

试试这个:Console.BufferHeight = 500;

答案 1 :(得分: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.实施异常处理。