我有一个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);
}
}
}
答案 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.实施异常处理。