Tämä on hieman vaativampi esimerkki virheentarkistuksen toteuttamiseksi.
Ohjelmassa tarkistetaan, että syöte on kokonaisluku.
Liukulukusyöte samoin kuin kirjaimien syöttäminen tai tyhjän rivin syöttäminen aiheuttavat virheilmoituksen.
Virheen huomaaminen perustuu siihen, että sscanf()-funktio palauttaa arvonaan onnistuneiden syötteiden lukumäärän, jonka tässä esimerkissä pitää olla täsmälleen yksi.
Jos lukuarvo on pienempi tai suurempi, käyttäjä on syöte on virheellinen.
#include <stdio.h> #include <conio.h> void main(void) { int luku; int ok_lkm; /* onnistuneiden syötteiden lkm */ char rivi[128]; /* syötetty rivi luetaan tähän */ char roska; /* mahdollinen ylimääräinen syöte */ clrscr(); printf ("Anna kokonaisluku: "); gets(rivi); ok_lkm = sscanf (rivi,"%d%c",&luku,&roska); while (ok_lkm != 1) { printf ("Virheellinen syöte. Anna uusi: "); gets(rivi); ok_lkm = sscanf (rivi,"%d%c",&luku,&roska); } printf ("Annoit luvun %d",luku); }