Hej,
witam wszystkich.

Mam problem, potrzebuje wczytać troche danych ze standardowego wejscia, dane sa to kolejne cyfry w formacie jak ponizej

20
2
3
4
5
6
7
8

 

Problem jest troche skomplikowany:
Program to interpreter pewnego jezyka, sęk polega na tym, ze że nie moge wczytać ich na raz tylko za każdym razem jak wywoływana jest funkcja czytająca powinna zostać wczytana kolejna wartość.

Przykladowa instrukcja do zinterpretowania:

  while ((x = readInt()) != 0) {
    printInt(x);
  }

W tym celu napisalem prosta funkcje ktora m.in wykonuje:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                        
            try {
                s = in.readLine();
 
                
            } catch (IOException ex) {
                Logger.getLogger(Interpreter.class.getName()).log(Level.SEVERE, null, ex);
            } 

jezeli uruchamiam program w ten sposób

cat test.input | ./interpreter testowy.cc

Niestety po wczytaniu pierwszej wartości: 20 przy nastepnym wywolaniu in.readLine() zwraca null.
Zupełnie nie rozumiem dlaczego...

Jezeli uruchomie go po przez po prostu ./interpreter testowy.cc i wpisuje liczby zakonczając Enterem wszystko dziala

Probowalem/googlałem ale nie znalazlem odpowiedzi dlaczego tak jest :(

Bardzo dziekuje za wszelkie informacje i pomoc!