在c# 2005中向文件写入输出
本文关键字:输出 文件 2005 | 更新日期: 2023-09-27 17:54:59
我在c# 2005中创建了一个标记表程序,它的工作很好,它通过使用下面的代码接受输入并显示输出。现在,如果我想这个程序的输出也复制到位于我的C或任何驱动器的新文件中。我该怎么办?我试过了。StreamWriter,但它不工作。
using(System.IO.TextWriter writer = System.IO.File.CreateText(@"C:'1.txt"))
{
Console.WriteLine("'t'tMarksheet - Prislogix Public School");
Console.Write("'n'nStudent Name : " + name);
Console.Write("'nClass : " + cls);
Console.Write("'nRoll Number : " + roll);
Console.Write("'n'nSubject't'tObtained Marks't'tTotal Marks");
Console.Write("'n'nChemistry't't" + chem + "'t't75");
Console.Write("'nEnglish't't't" + eng + "'t't100");
Console.Write("'nCalculus't't't" + urd + "'t't100");
Console.Write("'nDiscrete't't't" + sin + "'t't75");
Console.Write("'nMathematics't't" + mat + "'t't100");
Console.Write("'nPhysics't't't" + phy + "'t't75");
Console.Write("'nComputer't't" + comp + "'t't100");
Console.Write("'nMethods't't" + isl + "'t't50");
float tot = chem + eng + urd + sin + mat + phy + comp + isl;
Console.Write("'n'n't't'tTotal Obtained Marks : " + tot + "'tOut Of 625");
float per;
per = (tot / 625) * 100;
Console.Write("'n't't'tPercentage : " + per + "%");
if (per < 49 && per > 40)
{
Console.Write("'n't't'tFAILED!");
}
if (per <= 59 && per >= 50)
{
Console.Write("'n't't'tGrade : C");
}
if (per <= 69 && per >= 60)
{
Console.Write("'n't't'tGrade : B");
}
if (per <= 79 && per >= 70)
{
Console.Write("'n't't'tGrade : A");
}
if (per <= 89 && per >= 80)
{
Console.Write("'n't't'tGrade : A+");
}
if (per <= 100 && per >= 90)
{
Console.Write("'n't't'tGrade : A-ONE");
}
}
}
Console.ReadLine();
StreamWriter
工作。很遗憾,你还没有向我们展示你如何使用它。
StreamWriter
写入文件的最简单方法是使用File.CreateText
。然后,您应该能够使用StreamWriter.Write
与Console.Write
相同的方式。不要忘记使用using
语句:
using (TextWriter writer = File.CreateText("..."))
{
// Write stuff here
}
确保写入器将在using
语句结束时被释放,这将刷新并关闭文件。
如果你想写入控制台和文件,你可能需要一个"tee" TextWriter
写入两个输出…或者您可以在运行程序后查看文件。
有一点需要注意:在Windows中,正常的行结尾是'r'n
而不仅仅是'n
。如果问题只是所有的输出看起来像是在记事本中的一行,那么这可能就是问题所在。考虑使用WriteLine
而不是Write
,在行尾写出平台默认的行结束符。
如果这一切都失败了,请告诉我们出了什么问题,而不是"它不工作"。
更改所有对Console的调用。写入以便它们写入StringBuilder实例。打印完成后,您可以执行以下操作:
Console.Write(stringBuilder.ToString());
System.IO.File.WriteAllText("your path here", stringBuilder.ToString());
这可能是最简单的修复。它仍然会将输出写入控制台,但它也会写入您想要的文件。