如何从文本文件到数组读取整数

时间:2014-12-14 07:40:12

标签: c# arrays streamreader

所以这就是我想做的事情。我有点喜欢这个地方,但我希望你能忍受我。这对我来说是一个非常新的概念。

1)在我的程序中,我希望创建一个包含50个整数的数组来保存来自文件的数据。 我的程序必须获取用户文档文件夹的路径。 2)文件的名称为" grades.txt"。在程序中直接编码此文件名。获取文件名无需用户输入。 3)使用此路径创建StreamReader对象。这将打开文件。 编写一个从文件中读取数据的循环,直到它发现文件的结尾。 4)读入每个整数值时,我显示它,并将其存储在数组中。 5)使用部分填充数组的概念,编写一个方法,将数组作为参数,并计算并返回存储在数组中的整数的平均值 输出平均值。

所以现在我很难弄清楚如何将数字保存在grades.txt文件中,将它们保存到数组中并显示它们。我试图将整数分开并保存,但它似乎不起作用。

这是我到目前为止的代码:

class Program
{
    const int SIZE = 50;

    static void Main()
    {

        // This line of code gets the path to the My Documents Folder

        int zero = 0;
        int counter = 0;
        int n, m;
        StreamReader myFile;
        myFile = new StreamReader("C:/grades.txt");


        string inputNum = myFile.ReadLine();

        do
        {
            Console.Write("The test scores are listed as follows:");
            string[] splitNum = myFile.Split();
            n = int.Parse(splitNum[0]);
            {
                if (n != zero)
                {
                    Console.Write("{0}", n);                      
                    counter++;
                }
            }
        } while (counter < SIZE && inputNum != null);

        // now we can use the full path to get the document




        Console.ReadLine();
    }
}

这是grades.Txt文件:
88个
90个
78个
65个
50个
83个
75个
23个
60个
94个

2 个答案:

答案 0 :(得分:0)

1)在我的程序中,我希望创建一个包含50个整数的数组来保存来自文件的数据。

请参阅Arrays Tutorial (C#)

2)我的程序必须获取用户的Documents文件夹的路径。该文件的名称将是“grades.txt”。在程序中直接编码此文件名。获取文件名无需用户输入。

使用这两个:

Environment.GetFolderPath Method (Environment.SpecialFolder)

Path.Combine()

3)使用此路径创建StreamReader对象。这将打开文件。编写一个从文件中读取数据的循环,直到它发现文件的结尾。

请参阅StreamReader.EndOfStream()

4)当读入每个整数值时,我显示它,并将其存储在数组中。

如果每行只有一个分数,则不需要执行任何Split()调用。使用counter变量知道数组中存储值的位置。

5)使用部分填充数组的概念,编写一个方法,将数组作为参数,计算并返回存储在数组中的整数的平均值。输出平均值。

请参阅Methods (C# Programming Guide)

您将传递数组以及存储的数量值(counter变量)。

答案 1 :(得分:0)

要阅读文件,您需要这样的内容:

var scores = new List<int>();
        StreamReader reader = new StreamReader("C:/grades.txt");
        while (!reader.EndOfStream)
        {
            int score;
            if (int.TryParse(reader.ReadLine(), out score) && score != 0)
                scores.Add(score);
        }

并且您可以使用scores.Count属性获得分数。