scanf og input
Læs brugerinput
scanf og input er en gratis C Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C Academy-kurset indeholder 4 lektioner i alt.
Hvad scanf gør
scanf læser formateret input, som brugeren indtaster. Den bruger de samme specifikationer som printf.
#include <stdio.h>
int main(void) {
int x = 0;
/* scanf("%d", &x); */
x = 5;
printf("x = %d\n", x);
return 0;
}Adresseoperatoren
scanf skal bruge adressen på en variabel, så den kan gemme værdien dér. Derfor skriver du &x.
#include <stdio.h>
int main(void) {
int x = 42;
int *p = &x;
printf("value via address = %d\n", *p);
return 0;
}Læsning af et heltal
Hvis du vil læse et heltal, skal du angive %d og adressen på en int.
#include <stdio.h>
int main(void) {
int n;
/* scanf("%d", &n); */
n = 7;
printf("You entered %d\n", n);
return 0;
}Læsning af et flydende tal
Hvis du vil læse en float, skal du bruge %f; til en double skal du bruge %lf.
#include <stdio.h>
int main(void) {
double d;
/* scanf("%lf", &d); */
d = 3.14;
printf("d = %.2f\n", d);
return 0;
}Læsning af flere værdier
Ét scanf-kald kan læse flere værdier, der er adskilt af blanktegn.
#include <stdio.h>
int main(void) {
int a, b;
/* scanf("%d %d", &a, &b); */
a = 3; b = 4;
printf("sum = %d\n", a + b);
return 0;
}Læsning af et tegn
Brug %c til at læse ét tegn. Vær opmærksom på, at den også læser mellemrum og linjeskift.
#include <stdio.h>
int main(void) {
char c;
/* scanf(" %c", &c); */
c = 'X';
printf("char = %c\n", c);
return 0;
}Læsning af et ord
%s læser et ord afgrænset af blanktegn ind i et char-array. Der kræves ikke &, fordi et array-navn allerede er en adresse.
#include <stdio.h>
int main(void) {
char word[20];
/* scanf("%s", word); */
word[0] = 'H'; word[1] = 'i'; word[2] = 0;
printf("word = %s\n", word);
return 0;
}scanf-returværdi
scanf returnerer antallet af elementer, den læste korrekt. Kontrollér værdien for at opdage ugyldigt input.
#include <stdio.h>
int main(void) {
int n = 5;
int read = 1; /* pretend scanf returned 1 */
if (read == 1)
printf("got %d\n", n);
return 0;
}Spring over indledende mellemrum
Numeriske specifikationer springer automatisk indledende blanktegn over, men %c gør ikke. Et mellemrum før %c løser problemet.
#include <stdio.h>
int main(void) {
char c = 'Y';
printf("Reading with \" %%c\" skips spaces\n");
printf("c = %c\n", c);
return 0;
}Validering af input
Kontrollér altid returværdien, før du stoler på dataene.
#include <stdio.h>
int main(void) {
int value = 10;
int ok = 1;
if (ok)
printf("valid: %d\n", value);
else
printf("invalid input\n");
return 0;
}Sådan hænger det sammen
Et typisk program viser en prompt, læser derefter værdien og bruger den.
#include <stdio.h>
int main(void) {
int age;
printf("Enter age: ");
/* scanf("%d", &age); */
age = 20;
printf("Next year you will be %d\n", age + 1);
return 0;
}Hurtig kontrol
Test din forståelse af scanf.
Opsummering: scanf og input
Du har lært at læse brugerinput.
scanfbruger formatspecifikatorer i printf-stil- Overfør
&var, så funktionen ved, hvor værdien skal gemmes - Brug
%lftil double og%stil ord - Kontrollér returværdien for at validere input
- Sæt et mellemrum før
%cfor at springe whitespace over
Lær C med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 39
- Lektioner
- 144
Ofte stillede spørgsmål
Er lektionen “scanf og input” gratis?
Ja — hele teksten til “scanf og input” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C Academy-kurset, skal du opgradere til CoddyKit PRO. C Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “scanf og input”?
Læs brugerinput Du øver dig i C Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C Academy?
Der kræves ingen tidligere erfaring. C Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “scanf og input”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C Academy-lektion?
Ja. Alle C Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.