//printf , fgets , stdin , BUFSIZ
3 deklarera variabler som krävs för att mata in ett heltal genom att lägga till följande kod på toppen av din funktion :
int antal ;
unsigned n;
char buffer [ BUFSIZ ] ;
bool found_nondigit , giltig ;
4
Be användaren att ange ett heltal . Kontrollera om det är giltigt input och , om inte , fortsätt att begära inmatning tills användaren anger endast ett heltal genom att lägga till följande kod :
giltigt = false;
medan {
printf ( " Ange ett heltal : " ) ;
if ( ! fgets ( buffert , sizeof buffert , stdin ) = null ) {
buffert [ strlen ( buffert ) -1 ] = ' \\ 0 ' ;
found_nondigit = false;
if ( strlen ( buffert ) == 0 ) katalog
found_nondigit = true;
för ( n = 0 , n < strlen ( buffert ) , n + + ) katalog p Om
found_nondigit = true ( isdigit ( buffer [ n ] ) ! ) ,
if ( ! found_nondigit ) {
number = atoi ( buffert ) ,
printf ( " % d \\ n " , antal ) ;
giltig = true ;
}
annat
printf ( " Fel : Ogiltig indata \\ n " ) ;
}
}
input såsom " 5f , " " x6 " och " 8.4 " detekteras som ogiltiga indata . De " för" loop kontrollerar om varje inmatade tecknet är en siffra från 0 till 9. Den "Om ( strlen ( buffert ) == 0) " linje kontrollerar om användaren tryckte på " Enter" utan att ange någon input . Den " atoi " funktionen omvandlar input till ett heltal när det väl har validerats .
5
Rädda C + + -fil , kompilera och köra programmet för att samla heltal input från användaren .
Addera