//strlen
# Include //printf , fgets , stdin , BUFSIZ
3
Verklaar de variabelen noodzakelijk om eerst een integer door toevoeging van de volgende code aan de bovenkant van uw functie:
int aantal
;
unsigned n
;
char buffer
[ BUFSIZ ] ;
bool found_nondigit
, geldig ;
4
Vraag de gebruiker om input een integer . Controleer als het geldige invoer en , zo niet , houd het aanvragen ingang totdat de gebruiker invoert slechts een integer door toevoeging van de volgende code :
geldig = false
;
terwijl { < br ( geldig ! ) >
printf ("Geef een geheel getal : " ) ;
if ( ! fgets ( buffer , sizeof buffer , stdin ) = NULL ) {
buffer
[ strlen ( buffer ) -1 ] = ' \\ 0 ' ;
= false
found_nondigit ;
if ( strlen ( buffer ) == 0 )
found_nondigit = true
;
voor ( n = 0 ; n < strlen ( buffer ) ; n + + ) op Twitter
als
found_nondigit
= true ( isgetal ( buffer [ n ] ) ! ) ;
if ( ! found_nondigit ) {
aantal
= atoi ( buffer ) ;
printf ( " % d \\ n " , getal ) ;
geldig = true
;
}
anders
printf ( " Fout : Ongeldige invoer \\ n " ) ;
}
}
Input zoals "
5f , " " x6 " en " 8.4 " worden gedetecteerd als ongeldige invoer . De lus "voor" controleert of elke ingevoerde teken is een getal van 0 tot 9 . De " if ( strlen ( buffer ) == 0 ) " lijn controleert of de gebruiker de toets "Enter " ingedrukt zonder het invoeren van enige inbreng . De functie " atoi " zet de input voor een geheel getal als het eenmaal is gevalideerd .
5
Sla de C + + bestand , compileren en uitvoeren van het programma om integer inbreng te verzamelen van de gebruiker .
< Br >