Чтение и печать из текстового файла

Итак, я должен читать и печатать из текстового файла с кодом, но каждый раз, когда я запускаю, я получаю «java.utilNoSuchElementException» в строке 31 «grade = in.nextInt();». Текущий текстовый файл: 2 80 97 5 69 79 89 99 58 7 60 70 80 90 100 0 59

где первое число - это количество баллов в каждом разделе, каждый раздел должен быть подсчитан (т.е. 1, 2, 3). В любом случае, по одной задаче за раз. вот текущий код.

импортировать java.util.Scanner; импортировать java.io.*;

открытый класс Prog2 {

public static void main (String args []) throws IOException
{
    Scanner in = new Scanner (new File ("test1.txt"));

    int Lowest, Highest, grade = 0;
    float section_average, class_average;
    int count = 0, A = 0, B = 0, C = 0, D = 0, F = 0, total_number_of_sections = 0, total_number_of_scores = 0, number = 0;
    while (in.hasNextInt())
    {
        number = in.nextInt();
        System.out.println (in.nextInt());
        number ++;

        while (count < number)
        {
            grade = in.nextInt();
            total_number_of_sections += number;
            total_number_of_scores += grade;
            total_number_of_scores ++;

            count++;


        }

    }
    if (number > 0)
    {
        System.out.println ("Scores for section "+count);
    }
    else
    {
        System.out.println ("Scores for section 0");
    }
    if (grade >= 90)
    {
        A ++;

    }
    if (grade >= 80 && grade < 90)
    {
        B ++;

    }
    if (grade >= 70 && grade < 80)
    {
        C ++;

    }
    if (grade >= 60 && grade < 70)
    {
        D ++;

    }
    if (grade < 60)
    {
        F ++;

    }
    System.out.println (" ");
    System.out.println ("Scores for section "+count);
    System.out.println ("A's" + A);
    System.out.println ("B's" + B);
    System.out.println ("C's" + C);
    System.out.println ("D's" + D);
    System.out.println ("F's" + F);
    System.out.println ("Lowest Score: ");
    System.out.println ("Highest Score: ");
    System.out.println (" ");
    System.out.println (" ");
    System.out.println ("Total number of sections: " + total_number_of_sections);
    System.out.println ("Total number of scores: " + total_number_of_scores);
    System.out.println ("Class Average: ");



}

}


person Daniel Gosz    schedule 12.10.2013    source источник
comment
Чувак, ты дважды вызываешь in.nextInt() при каждом проходе цикла. Назовите его ONCE, сохраните значение и распечатайте сохраненную переменную.   -  person paulsm4    schedule 12.10.2013


Ответы (1)


попробуй это

while (in.hasNextInt())
{
    count = 0;
    number = in.nextInt();
    System.out.println (in.nextInt());


    while (in.hasNextInt())
    {
        grade = in.nextInt();
        total_number_of_sections += number;
        total_number_of_scores += grade;
        total_number_of_scores ++;

        if(++count == number ){ break;}


    }

}
person Pankaj Sharma    schedule 12.10.2013
comment
он выдал только 80 и 79, когда вошел в мою программу. Однако, спасибо. - person Daniel Gosz; 13.10.2013