Varför gör den så? Vet att jag hade samma problem i C++ kursen, men kommer inte ihåg hur man åtgärdar det hela... Antagligen är det ändå inte samma sätt, men hur gör man?
System.in.read hoppas över
3 svar · 184 visningar · startad av pettsson
Löste det själv genom att byta från System.in.read() till InputReader.
Hej!
Vad exakt menar du?
Att du aldrig får möjligheten att skriva nåt?
Klistra in lite kod så kan vi lättare se ditt problem.
Nedanstående kod tar emot ett tecken från tangentbordet.
try
{
System.in.read(); // läser in ett tecken
}
catch(Exception e)
{
System.out.println(e);
}
Vill du däremot ha det som användaren skrev efter att han/hon tryckte på enter så får du göra en egen metod som lyssnar på InputStreamen efter fler tecken och lagra dem nånstans (t ex StringBuffer)
StringBuffer str = new StringBuffer();
int ch;
while( (ch = System.in.read() ) != -1) // rulla på så länge vi får in data från tangentbordet
{
if(ch == '\r')
continue;
else if(ch != '\n') // lagra tecknet i en StringBuffer
str.append((char)ch);
else // användaren tryckte på enter
break;
}
System.out.println(str); // skriv ut det du skrev med tangentbordet
Jag fick aldrig möjlighet att skriva in något, nej. Men nu använder jag en BufferedReader, och allting funkar fint :)