从文件中读取数字时,我的代码无法正确地将数字相加

0 c# parsing sum readline textreader

我想将文件中的数字相加。数字是 31 32 45 65 67 54 43 78 98 33 14 25。答案应该是 585,但代码给出了 287。我哪里出错了,如何解决?

using System;
using System.IO;

namespace TaaviSimsonTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (TextReader reader = File.OpenText("C:\\temp\\andmed.txt"))
            {
                int sum = 0;
                while (reader.ReadLine() != null)
                {
                    int i = int.Parse(reader.ReadLine());
                    sum += i;
                }
                Console.WriteLine(sum);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Çöđ*_*xěŕ 5

我想将文件中的数字相加。数字是 31 32 45 65 67 54 43 78 98 33 14 25。答案应该是 585,但代码给出了 287

主要问题是因为reader.ReadLine() != null该检查。再说一次,你正在阅读下一行int.Parse(reader.ReadLine());

发生的事情是您正在阅读第一行,然后再次阅读并获得该值,因此您正在跳过所有其他条目。而是只阅读一次,然后对该作业做一些事情。

using (TextReader reader = File.OpenText("C:\\temp\\andmed.txt"))
{
   int sum = 0;
   string line = string.Empty;
   while ((line = reader.ReadLine()) != null)
   {
      int i = int.Parse(line);
      sum += i;
   }
   Console.WriteLine(sum);
}
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以实现这一点,但这不是这篇文章的关注点。