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.