0

我想将文件中的数字相加。数字是 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);
            }
        }
    }
}
4

1 回答 1

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);
}

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

于 2020-10-01T18:03:34.350 回答