C Bruger Input
C er et populært programmeringssprog, der bruges til at udvikle et bredt udvalg af softwareapplikationer. En vigtig del af programmering i C er at håndtere brugerindtastning. Brugerindtastning er en måde, hvorpå en bruger kan kommunikere med programmet ved at levere data eller instruktioner til det. I denne artikel vil vi dykke ned i emnet brugerindtastning i C og se på forskellige metoder og teknikker til at håndtere det.
C Indtastning
For at muliggøre brugerindtastning i C kan vi bruge funktionenscanf(). Denne funktion læser indtastning fra tastaturet og gemmer det i variabler. Her er et eksempel:
#include
int main() {
int num;
printf(Indtast et tal: );
scanf(%d, &num);
printf(Det indtastede tal er: %dn, num);
return 0;
}
I dette eksempel beder vi brugeren om at indtaste et tal ved at brugeprintf()-funktionen til at vise en promptbesked. Derefter bruger viscanf()-funktionen til at læse tallet fra tastaturet. Variablen num gemmer det indtastede tal, som vi senere udskriver ved hjælp afprintf()-funktionen.
Fejlhåndtering af input
Det er vigtigt at være i stand til at håndtere fejl, der kan opstå under brugerindtastning. Hvis brugeren indtaster noget, der ikke kan matches med den forventede datatype, kan det føre til uønsket adfærd. En måde at håndtere dette på er ved at kontrollere returværdien afscanf()-funktionen.scanf()returnerer det antal elementer, der er indlæst korrekt. Hvis returværdien er mindre end antallet af elementer, kan det betyde, at der opstod en fejl ved indtastningen.
Her er et eksempel, der illustrerer fejlhåndtering:
#include
int main() {
int num;
printf(Indtast et tal: );
if (scanf(%d, &num) != 1) {
printf(Fejl! Ugyldig indtastning.n);
return 1;
}
printf(Det indtastede tal er: %dn, num);
return 0;
}
I dette eksempel bruger vi enif-sætning til at kontrollere, om returværdien frascanf()er anderledes end 1. Hvis det er tilfældet, betyder det, at indtastningen var ugyldig, og vi udskriver en fejlbesked og stopper programmet ved at returnere 1.
Tastaturindtastning og buffer
En vigtig ting at bemærke ved brugerindtastning er, at tastaturet indtastning opbevares midlertidigt i en buffer. Det betyder, at når vi brugerscanf()til at læse indtastningen, vil det læse fra bufferen. Hvis der er mere indtastning i bufferen, vilscanf()fortsætte med at læse fra bufferen uden at bede brugeren om mere input.
Dette kan skabe problemer, hvis vi har brug for at læse en streng med mellemrum. Standardadfærden forscanf()-funktionen er at stoppe læsning ved det første mellemrumstegn. En måde at håndtere dette på er ved at brugefgets()-funktionen til at læse en hel linje og derefter behandle den.
Her er et eksempel:
#include
int main() {
char name[100];
printf(Indtast dit fulde navn: );
fgets(name, 100, stdin);
printf(Dit navn er: %s, name);
return 0;
}
I dette eksempel bruger vifgets()til at læse en linje tekst fra tastaturet og gemme den i variablen name. Vi specificerer også den maksimale længde af indtastningen og strømmen til indlæsning af data (stdin). Til sidst udskriver vi indholdet af name ved hjælp afprintf().
Input og output i C
Udover brugerindtastning spiller output en vigtig rolle i C-programmering. At være i stand til at udskrive information og resultater er afgørende for at kunne kommunikere resultaterne af beregninger eller processer med brugeren. I C bruger viprintf()-funktionen til at udskrive data.
Her er et eksempel:
#include
int main() {
int num1, num2, sum;
printf(Indtast to tal: );
scanf(%d%d, &num1, &num2);
sum = num1 + num2;
printf(Summen af de to tal er: %dn, sum);
return 0;
}
I dette eksempel beder vi brugeren om at indtaste to tal ved hjælp afprintf()-funktionen. Vi bruger derefterscanf()til at læse de to tal og gemme dem i variablerne num1 og num2. Vi beregner summen af de to tal og udskriver den ved hjælp afprintf().
cin i C++
ciner en indbygget objekt i C++, der bruges til at håndtere brugerindtastning. I modsætning til C, hvor vi brugerscanf()-funktionen, kan vi i C++ brugecinfor at læse forskellige typer input på en mere fleksibel måde.
Her er et eksempel:
#include
using namespace std;
int main() {
int num;
cout<< Indtast et tal: ;
cin >>num;
cout<< Det indtastede tal er: << num<< endl;
return 0;
}
I dette eksempel bruger vicintil at læse et tal fra tastaturet og gemme det i variablen num. Vi bruger dereftercouttil at udskrive tallet sammen med en passende tekst.
Tastaturindtastning og nøglenhedsindtastning
I C kan vi også håndtere tastaturindtastning på et mere avanceret niveau ved hjælp af funktionengetch().getch()er en funktion fra conio.h-biblioteket, der bruges til at læse tastetryk uden at vente på, at brugeren trykker på Enter-tasten. Dette gør det muligt for os at håndtere tastaturindtastningen tegn for tegn.
Her er et eksempel:
#include
#include
int main() {
char ch;
printf(Tryk på en tast: );
ch = getch();
printf(Du trykkede på tasten: %cn, ch);
return 0;
}
I dette eksempel bruger vigetch()til at læse en enkelt tast fra tastaturet uden at vente på Enter-tasten. Vi gemmer det indtastede tegn i variablen ch og udskriver det derefter ved hjælp afprintf().
Sådan håndterer vi brugerindtastning i C ved at bruge forskellige metoder somscanf(),fgets(),cinoggetch(). Ved at forstå disse metoder og teknikker kan vi opbygge mere interaktive og brugervenlige applikationer. Brugerinput er afgørende for at lave programmer, der kan tilpasses individuelle brugeres behov og ønsker.
Ofte stillede spørgsmål
Hvad er user input i C?
Hvad er forskellen mellem c input og c user input?
Hvordan får man user input i C?
Hvad er input output i C?
Hvad betyder cin i C?
Hvad er keyboard input i C?
Andre populære artikler: AWS Cloud Lambda – En Dybdegående Guide til Lambda Cloud Service • Pandas DataFrame std() Metode • MySQL SUBSTRING_INDEX() Funktion • ASP Eksempler • Python List clear() Method • Node.js MySQL Select From • Python File readline() Metode • HTML DOM Textarea disabled Property • Introduktion til Google Sheets • Bootstrap Navigation Components • JQuery addClass() Metode • AWS Serverless Kinesis Data Streams vs. Kinesis Data Firehose • jQuery eq() Metoden • PHP Cookies • JavaScript Quiz – Test din viden om JavaScript • ChatGPT-3.5 Tutorial • Java Class Methods • What is Fullstack JavaScript? • Python pass Keyword • C Structures (structs)