Hvordan lage Input Bare et heltall i C ++
Tvinge innspill i en C ++ program for å være et heltall er nyttig når du ber om en person til å legge inn et nummer, slik som hans alder, og du vil ignorere ugyldige inndata, for eksempel "$ 2", "18,5" eller "nei". Det er ingen enkel måte å begrense inngangssignal til en bestemt type, som I / O funksjoner behandles vanligvis inndata bare som et tegn eller en streng. For å tvinge heltall innspill, manuelt sløyfe gjennom innspill og kontroller at hver karakter er et gyldig heltall.
Bruksanvisning
1 Åpne C ++ filen i et redigeringsprogram, for eksempel Microsoft Visual Studio Express.
2 Ta de nødvendige biblioteker for å få tilgang til funksjoner ved å legge til følgende kode på toppen av filen:
inkluderer <ctype.h> // isdigitinclude <stdlib.h> // atoiinclude <string.h> // strleninclude <stdio.h> // printf, fgets, stdin, BUFSIZ
3 Erklærer variablene er nødvendige for å skrive inn et heltall ved å legge til følgende kode på toppen av funksjon:
int nummer,
usignert n;
char buffer [BUFSIZ];
bool found_nondigit, gyldig;
4 Be brukeren om å skrive inn et heltall. Sjekk om det er gyldig innspill, og hvis ikke, holde ber innspill til brukeren oppgir bare et tall ved å legge til følgende kode:
gyldig = false;
while (! gyldig) {
printf ( "Skriv inn et heltall:");
if (fgets (buffer, sizeof buffer, stdin)! = NULL) {
buffer [strlen (buffer) -1] = '\ 0';
found_nondigit = false;
if (strlen (buffer) == 0)
found_nondigit = true;
for (n = 0; n <strlen (buffer); n ++)
if (! isdigit (buffer [n]))
found_nondigit = true;
if (! found_nondigit) {
nummer = atoi (buffer);
printf ( "% d \ n", antall);
gyldig = true;
}
ellers
printf ( "Feil: Ugyldig inndata \ n");
}
}
Inngang, for eksempel "5f", "x6" og "8.4" blir oppdaget som ugyldige inndata. Den "for" loop sjekker om hvert tegn skrevet inn er et tall fra 0 til 9. "if (strlen (buffer) == 0)" linje sjekker om brukeren trykker på "Enter" -tasten uten å angi noen innspill. Den "atoi" -funksjonen konverterer inngangen til et heltall når det har blitt validert.
5 Lagre C ++ fil, kompilere og kjøre programmet for å samle heltall input fra brukeren.