C ++ scanf - C ++ standardowa biblioteka

Funkcja scanf () w C ++ służy do odczytywania danych ze standardowego wejścia.

prototyp scanf ()

 int scanf (format const char *,…);

scanf()Funkcja odczytuje dane z stdini przechowuje wartości do odpowiednich zmiennych.

Jest zdefiniowany w pliku nagłówkowym.

scanf () Parametry

  • format: Wskaźnik do ciągu znaków zakończonych znakiem null, który określa sposób odczytywania danych wejściowych. Składa się ze specyfikatorów formatu zaczynających się od%.

    Ciąg formatu składa się z następujących części:

    • Non whitespace charactersz wyjątkiem%, z których każdy zużywa jeden identyczny znak ze strumienia wejściowego. Może to spowodować niepowodzenie funkcji, jeśli następny znak w strumieniu nie jest równy.
    • Whitespace character: Wszystkie następujące po sobie białe znaki są traktowane jako pojedyncze białe znaki. Ponadto „ n”, „ t” i „” są uważane za takie same.
    • Conversion specification: Ma następujący format:
      • Początkowy znak%, który określa początek
      • Opcjonalny *, nazywany znakiem tłumiącym przypisanie. Jeśli ten znak jest obecny, scanf () nie przypisuje wyniku do żadnego otrzymywanego argumentu.
      • Opcjonalna dodatnia liczba całkowita, która określa maksymalną szerokość pola. Określa maksymalną liczbę znaków, które funkcja scanf () może wykorzystać podczas wykonywania konwersji określonej w bieżącej specyfikacji konwersji.
      • Opcjonalny modyfikator długości określający rozmiar otrzymywanego argumentu.
      • Specyfikator formatu konwersji.
        Specyfikator formatu Opis
        % Dopasowuje dosłowne%
        do Dopasowuje pojedynczy znak lub wiele znaków. Jeśli zdefiniowano szerokość, dopasowuje dokładnie znaki szerokości.
        s Dopasowuje kolejne znaki niebędące białymi znakami. Jeśli zdefiniowano szerokość, dopasowuje dokładnie znaki szerokości lub do znalezienia pierwszej spacji.
        (zestaw) Dopasowuje niepusty ciąg znaków z podanego zestawu znaków. Jeśli występuje na początku zbioru, to dopasowywane są wszystkie znaki spoza zbioru.
        re Dopasowuje dziesiętną liczbę całkowitą.
        ja Dopasowuje liczbę całkowitą.
        o Dopasowuje ósemkową liczbę całkowitą bez znaku.
        X lub x Dopasowuje szesnastkową liczbę całkowitą bez znaku.
        u Dopasowuje dziesiętną liczbę całkowitą bez znaku.
        A lub a, E lub e, F lub f, G lub g Dopasowuje liczbę zmiennoprzecinkową.
        n Zwraca liczbę odczytanych dotychczas znaków.
        p Dopasowuje sekwencję znaków zdefiniowaną przez implementację definiującą wskaźnik.
    Zatem ogólny format specyfikatora formatu to: %(*)(width)(length)specifier
  • …: Inne dodatkowe argumenty za otrzymywaniem danych. Występują w sekwencji zgodnie ze specyfikatorem formatu.

scanf () Zwraca wartość

  • Jeśli się powiedzie, scanf()funkcja zwraca liczbę pomyślnie przypisanych otrzymanych argumentów.
  • Jeśli błąd dopasowania wystąpi przed przypisaniem pierwszego argumentu odbierającego, zwraca zero.
  • Jeśli błąd wejścia wystąpi przed przypisaniem pierwszego argumentu odbioru, zwracany jest EOF.

Przykład: Jak działa funkcja scanf ()

 #include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )

Po uruchomieniu programu możliwe wyjście to:

 Witaj Tim, masz 31 lat

Interesujące artykuły...