我目前的代码。
using System;
namespace Pyramidi
{
class Ohjelma
{
static void Main()
{
int maxHeight = 0;
do
{
Console.Write("Anna korkeus: ");
maxHeight = Convert.ToInt32(Console.ReadLine());
if (maxHeight > 0)
{
break;
}
else
{
continue;
}
}
while (true);
for (int height = 0; height < maxHeight; height++)
{
for (int i = 0; i < (maxHeight - height - 1); i++)
{
Console.Write(" ");
}
for (int i = 1; i <= (height * 2 + 1); i++)
{
Console.Write("*");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
答案 0 :(得分:4)
最容易做的事情是,根本不需要更改程序,是在运行程序时将程序的输出重定向到文件:
MyProject.exe > file.txt
“&gt;” 中是一个“重定向操作符”,就像许多Unix shell中一样。
如果您使用的是Windows,则可以阅读有关输出重定向运算符和其他此类运算符here的更多信息。如果您使用的是Unix shell,请使用shell的重定向运算符(例如here's the Bash manual's advice)。
答案 1 :(得分:3)
John的答案是最快和最简单的,但StreamWriter也是一个解决方案。当您需要写入文件时,这将经常使用。
我建议阅读StreamWriter。这允许您输出到文件。
您只需要添加一个StreamWriter对象,并将Stream.WriteLines替换为StreamWriter变量名。
using (StreamWriter sw = new StreamWriter("fileName.txt"))
{
for (int height = 0; height < maxHeight; height++)
{
for (int i = 0; i < (maxHeight - height - 1); i++)
{
sw.Write(" ");
}
for (int i = 1; i <= (height * 2 + 1); i++)
{
sw.Write("*");
}
sw.WriteLine();
}
sw.Flush();
}
答案 2 :(得分:1)
以下是使用Console.SetOut
方法的另一种解决方案:
using (var writer = new StreamWriter("filepath"))
{
Console.SetOut(writer);
do
{
Console.Write("Anna korkeus: ");
maxHeight = Convert.ToInt32(Console.ReadLine());
if (maxHeight > 0) break;
else continue;
}
while (true);
for (int height = 0; height < maxHeight; height++)
{
for (int i = 0; i < (maxHeight - height - 1); i++)
{
Console.Write(" ");
}
for (int i = 1; i <= (height * 2 + 1); i++)
{
Console.Write("*");
}
Console.WriteLine();
}
writer.Flush();
}
Console.SetOut
更改Console
的输出流。因此,当您使用Console.Write
时,它会写入该流而不是Console
。然后您调用Flush
} method,它写入底层流中的所有数据并清除缓冲区。
答案 3 :(得分:-1)
不使用写入控制台,而是使用IO
直接写入文件using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
}
// Open the file to read from.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
}
有关详细信息,请访问此http://msdn.microsoft.com/en-us/library/system.io.file.aspx