在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();

在c# 2005中向文件写入输出

StreamWriter 工作。很遗憾,你还没有向我们展示你如何使用它。

创建 StreamWriter写入文件的最简单方法是使用File.CreateText。然后,您应该能够使用StreamWriter.WriteConsole.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());

这可能是最简单的修复。它仍然会将输出写入控制台,但它也会写入您想要的文件。