Merkkien luku

ilman RETURN:ia?

Miten luetaan Java:lla merkkejä näppäimistöltä niin, että ei tarvitse painaa RETURN:ia?
Esim. ao. ohjelman olisi tarkoitus kaiuttaa jokainen painettu merkki takaisin ruudulle, mutta se vaatii RETURN:n painamista jokaisen merkin jälkeen. Ymmärrän, että System.in on rivipuskuroitu, mutta kuinka em. ongelma ratkaistaan?

public static void main(String[] args) throws java.io.IOException {
char ch;

System.out.println("OHJELMA ALKOI.");
for(;;) {
ch = (char)System.in.read();
System.out.print(ch);
if(ch =='q')break;
}

System.out.println("OHJELMA LOPPUI.");
}

1

249

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • fidel1

      System.in ei ole javan kannalta rivipuskuroitu vaan käyttöjärjestelmän konsoli on. Eli javalla ei voi lukea yksittäisi kirjaimia normaalista konsoli-inputista, koska java-prosessi ei niitä näe ennenkuin kuin käyttäjä painaa enteriä.

      Näin minä sen ainakin olen ymmärtänyt, korjatkaa joku jos olen väärässä.

      Ongelman voit kiertää esimerkiksi luomalla pienen syöttöikkunan ja kuuntelemalla näppäinpainalluksia, mikä ei tosin hirveästi lohduta, jos sulla ei ole graafista ympäristöä käytössä.. mutta katso Googlesta lisätietoja, esim. hakusanoilla "java unbuffered input stream"

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Voitasko leikkiä jotain tunnisteleikkiä?

      Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta
      Ikävä
      78
      1795
    2. Tietysti jokainen ansaitsee

      Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt
      Ikävä
      18
      1679
    3. Millä voin

      Hyvittää kaiken?
      Ikävä
      16
      1494
    4. En voi sille mitään

      Tulen niin pahalle tuulelle tästä paikasta nykyisin. Nähnyt ja lukenut jo kaiken ja teidän juttu on samaa illasta toisee
      Ikävä
      12
      1184
    5. 50+ naiset kyl

      Lemottaa sillille mut myös niitte kaka lemottaa pahlle ku kävin naiste veskis nuuhiin
      Ikävä
      19
      1183
    6. Välitän sinusta mies

      Kaikki mitä yritin kertoa tänään ei mennyt ihan putkeen..Joka jäi jälkeenpäin ajateltuna suoraan sanottuna harmittaa aiv
      Työpaikkaromanssit
      6
      1172
    7. hieman diabetes...

      Kävin eilen kaverin kanssa keskusapteekissa kun on muutama kuukausi sitten tullut suomesta ja oli diabetes insuliinit lo
      Pattaya
      12
      1126
    8. Annetaanko olla vaan

      Siinä se, tavallaan kysymys ja toteamuskin. Niin turhaa, niin rikkovaa. On niin äärettömän tärkeä, ja rakas olo.. N
      Ikävä
      29
      1121
    9. Miten joku voi käyttää koko elämänsä

      siihen että nostelee täällä vanhoja ketjuja ja troIIaa niihin jotain linkkiä mitä kukaan ei avaa? Ihmisellä ei ole mitää
      Tunteet
      6
      1099
    10. Pakkoruotsi on leikkikieli, jota ei ole tarkoituskaan osata

      Pakkoruotsi on leikkikieli. Ennen leikkikieltä sanottiin siansaksaksi, sitten keksittiin tilalle pakkoruotsi. Pakkoruot
      Kielipolitiikka
      7
      1094
    Aihe