Eli, koodailen tässä Linuxilla sovellusta jossa on SDL/OpenGL-yhdistelmällä luotu ikkuna, joka on grafiikan näyttämistä varten, mutta itse ohjelman ohjailu tapahtuu pääasiassa päätteen kautta. Nyt kuitenkin käy niin että pääte ikäänkuin jumittuu ohjelman suorituksen ajaksi, eli sen aikana ei voi lukea mitään, ja jos printf()-funktiolla kirjoittaa niin teksti ilmestyy vasta varsinaisen SDL/OpenGL ikkunan sulkemisen jälkeen. Millaiset lääkkeet tähän löytyisi?
Minulla kyllä toimii sekä kirjoitus että luku aivan hyvin. SDL siinä jumittuu, kun konsolissa odotetaan syötettä.
Hmm, coutin kanssa toimii jos loppuun laittaa endl mutta muuten ei toimi senkään kanssa. Pitänee luopua tuon päätteen käytöstä syöttämiseen kun se muutenkin on vähän hankala.
Ongelma on selkeästi se, että päätteen I/O on puskuroitu.
endl pakottaa puskurin tyhjennyksen, siksi tuo toiminee coutin kanssa.
Jos haluat printf()-kutsun kanssa saman vaikutuksen, niin fflush()-funktio auttaa.
Argumenttina fflush() haluaa osoittimen tiedostokahvaan (FILE *) tahi NULL-osoittimen, jolloin kaikki avoinna olevat output-virrat tyhjennetään.
Siispä fflush(stdout) on se mitä haetaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.