C/gets

Z Wikibooks, biblioteki wolnych podręczników.
< C


Deklaracja[edytuj]

char *gets(char *str);


Plik nagłówkowy[edytuj]

stdio.h


Opis[edytuj]

Funkcja gets() czyta linię ze standardowego wejścia (usuwa ją stamtąd) i umieszcza ją w tablicy znakowej wskazywanej przez str. Ostatni znak linii (znak nowego wiersza - '\n') zastępuje zerem (znakiem '\0').

Wartość zwracana[edytuj]

Wartością funkcji jest str w przypadku sukcesu lub NULL w przypadku błędu lub natrafienia na koniec pliku. Funkcja nie sprawdza, czy jest miejsce do zapisu w tablicy str.


Przykład użycia[edytuj]

Jeśli pierwsza linia ma więcej niż 50 znaków nastąpi przepełnienie bufora. Z tego powodu funkcja ta jest niebezpieczna dla programu.

#include <stdio.h>

int main()
{
    const int max_n= 50;
    char napis[max_n+1], *n;

    n = gets(napis); 
    if(n != NULL)
        puts(napis);
    else
        puts("blad odczytu");    
    return 0;
}
Powyższy program drukuje pierwszą linię ze swego wejścia (o ile nie przekracza ona 50 znaków). Jeśli na jego wejściu podamy plik źródłowy, wydrukuje:
#include <stdio.h>

Zobacz też[edytuj]

fgets, puts, getc
  1. stackoverflow question: implicit-declaration-of-gets