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)
我想将文件中的数字相加。数字是 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)
还有其他方法可以实现这一点,但这不是这篇文章的关注点。
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |