scanf i wejście
Odczytywanie danych od użytkownika
scanf i wejście to bezpłatna lekcja C Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 4 lekcji w sumie.
Działanie scanf
scanf odczytuje sformatowane dane wejściowe wprowadzone przez użytkownika. Używa tych samych specyfikatorów co printf.
#include <stdio.h>
int main(void) {
int x = 0;
/* scanf("%d", &x); */
x = 5;
printf("x = %d\n", x);
return 0;
}Operator pobrania adresu
scanf potrzebuje adresu zmiennej, aby móc zapisać w nim wartość. Dlatego należy użyć zapisu &x.
#include <stdio.h>
int main(void) {
int x = 42;
int *p = &x;
printf("value via address = %d\n", *p);
return 0;
}Odczytywanie liczby całkowitej
Aby odczytać liczbę całkowitą, należy przekazać %d oraz adres zmiennej typu int.
#include <stdio.h>
int main(void) {
int n;
/* scanf("%d", &n); */
n = 7;
printf("You entered %d\n", n);
return 0;
}Odczytywanie liczby zmiennoprzecinkowej
Aby odczytać wartość typu float, należy użyć %f, a dla typu double — %lf.
#include <stdio.h>
int main(void) {
double d;
/* scanf("%lf", &d); */
d = 3.14;
printf("d = %.2f\n", d);
return 0;
}Odczytywanie wielu wartości
Jedno wywołanie scanf może odczytać kilka wartości oddzielonych białymi znakami.
#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;
}Odczytywanie znaku
Należy użyć %c, aby odczytać jeden znak. Uwaga: ten specyfikator odczytuje również spacje i znaki nowego wiersza.
#include <stdio.h>
int main(void) {
char c;
/* scanf(" %c", &c); */
c = 'X';
printf("char = %c\n", c);
return 0;
}Odczytywanie słowa
%s odczytuje słowo oddzielone białymi znakami do tablicy typu char. Nie trzeba używać &, ponieważ nazwa tablicy jest już adresem.
#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;
}Wartość zwracana przez scanf
scanf zwraca liczbę elementów, które udało mu się pomyślnie odczytać. Należy ją sprawdzać, aby wykrywać nieprawidłowe dane wejściowe.
#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;
}Pomijanie początkowych spacji
Specyfikatory liczbowe automatycznie pomijają początkowe białe znaki, ale %c tego nie robi. Spacja przed %c rozwiązuje ten problem.
#include <stdio.h>
int main(void) {
char c = 'Y';
printf("Reading with \" %%c\" skips spaces\n");
printf("c = %c\n", c);
return 0;
}Weryfikowanie danych wejściowych
Zawsze należy sprawdzić wartość zwracaną, zanim zaufa się danym.
#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;
}Składanie wszystkiego w całość
Typowy program wyświetla monit, odczytuje wartość, a następnie jej używa.
#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;
}Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat scanf.
Podsumowanie: scanf i dane wejściowe
Nauczyłeś się odczytywać dane wprowadzane przez użytkownika.
scanfużywa specyfikatorów w stylu printf- Przekaż
&var, aby wskazać miejsce przechowywania wartości - Używaj
%lfdla double i%sdla słów - Sprawdzaj wartość zwracaną, aby zweryfikować dane wejściowe
- Wstaw spację przed
%c, aby pomijać białe znaki
Często zadawane pytania
Czy lekcja „scanf i wejście” jest bezpłatna?
Tak — pełny tekst „scanf i wejście” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „scanf i wejście”?
Odczytywanie danych od użytkownika Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C Academy?
Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „scanf i wejście”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?
Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.