Kääntäjäni on lcc-win32. Kotisivullani ohjelmassa
http://pp.kpnet.fi/jvm/jvm/pallokolmio.htm
on funktiossa Haetunnetut() alkeellinen tapa syödä ylimääräinen enter pois (merkki = getchar();). Jouduin käyttämään samaa temppua ennen gets() funktiota, koska jostain oli jäänyt ylimääräinen enter puskuriin ja se aiheutti gets() funktion ohituksen. Teenkö jotain väärin, vai onko parempia tapoja enterien pitäiseksi kurissa ? JVM.
Tietenkin ne jäävät puskuriin, jos niitä ei kukaan sieltä lue pois. Puskurista voit poistaa merkit seuraavaan rivinvaihtoon asti näin:
scanf("%*[^\n]");
Seuraavat rivinvaihdot taas saa pois käänteisellä merkkiehdolla:
scanf("%*[\n]");
Näiden jälkeen edessä on siis seuraavan tekstiä sisältävän rivin alku. Näitä kannattaa tietenkin kutsua vasta juuri ennen seuraavaa lukemista, jottei ohjelma jää odottelemaan sitä seuraavaa riviä.
Kokeilin jälkimmäistä lausetta. Kääntäjäni hyväksyi sen ja se tehosi. Hakasulut scanf funktiossa on jäänyt näköjään minulta opiskelematta. JVM
En löytänyt netistä sellaista hyvää ohjetta scanf funktion muotoilusta, josta olisin saanut lisää tietoa mm hakasulkujen käytöstä. Satandardiohjeita löytyi kyllä runsaasti. JVM
Kyseessä on scanset, ja siitä kyllä kerrotaan kaikissa scanf:n muotoiluista kattavasti kertovissa lähteissä (jotka on usein kopioitu suurelta osin suoraan standardista). Google löytää esimerkiksi tällaisen lähteen.
Selvitys hakasulkuihin löytyi, ja paljon muutakin tutkimisen arvoista, Kiitos. JVM
Aihe on jo aika vanha, joten et voi enää vastata siihen.