czemu nie wychodzi z pętli??

0

Czemu w tym programie jeśli osiągnięty zostanie koniec lini program nie opuszcza pętli while i przechodzi do kolejnych instrukcji??

import java.io.*;

public class Czytnik{
	public static void main(String args[]){
		StreamTokenizer st = new StreamTokenizer(
					new BufferedReader(
							new InputStreamReader(System.in)));
		System.out.println("Wprowadź linie tekstu i naciśnij enter: ");
		String linia = "";		
		try{
			int vale;
			while((vale = st.nextToken()) != StreamTokenizer.TT_EOL){
				if(vale == StreamTokenizer.TT_EOF){return;}
				linia+=st.sval;				
			}
			System.out.println(linia);
		}
		catch(IOException e){System.out.println("Błąd przy wczytywaniu poszczególnych tokenów");}		
		
	}
}
0

Ale jak i kiedy wprowadzasz mu znak konca linii? Naciskajac ENTER uzyskasz \r czyli kod ASCII o nr 13. A znak konca linii to \r\n czyli kolejno znaki ASCII o numerach 13 i 10... z klawiatury niestety nie mam pojecia jak wprowadzisz dwa kody naraz (mozesz trzymac lewy Alt i z klawiatury numerycznej wklepac 013 a potem 010... ale to beda dwa a nie jeden znak)... dlatego nie moze wyjsc z petli bo czeka na kombinacje \r\n... Domyslam sie ze jest to pfragment przerobionego programu do wczytywania z pliku. Tam nie ma tego problemu bo te znki sa zapisywane do pliku :/ chyba musisz wymyslec cos innego (albo problem tkwi w czym innym :] )

0

najlepiej bedzie jak powiesz co chcesz zrobic..

1 użytkowników online, w tym zalogowanych: 0, gości: 1