Język C++
gets
[funkcja] Wczytuje jeden wiersz tekstu ze standardowego strumienia wejścia (stdin).Składnia
#include <cstdio>
char * gets( char * buffer );
Argumenty
Zwracana wartość
Zwraca wskaźnik przekazany poprzez argument w przypadku sukcesu. Funkcja zwraca wartość
NULL w przypadku napotkania błędu lub w przypadku nie odczytania żadnego znaku z powodu osiągnięcia końca strumienia. W celu ustalenia rodzaju błędu jaki wystąpił należy użyć funkcji
ferror lub
feof.
Opis szczegółowy
Funkcja wczytuje tekst ze standardowego wejścia aż do napotkania znaku przejścia do nowej linii. Funkcja kończy operację wczytywania danych również wtedy, gdy w buforze danych strumienia wejścia nie pozostało więcej danych do odczytania. Wczytany wiersz jest zawsze zakończony znakiem terminalnym (\0). Znak przejścia do nowej linii nie jest zapisywany do bufora.
Dodatkowe informacje
Zamiast funkcji
gets zaleca się używać funkcji
fgets, ponieważ umożliwia ona określenie maksymalnej liczby znaków, jaka może zostać wczytana do bufora.
Uwaga! Funkcja gets nie jest bezpieczna, ponieważ nie można ograniczyć liczby wczytywanych znaków ze standardowego wejścia. Jeżeli przekazany do funkcji bufor danych będzie zbyt mały to dane będą zapisywane przez funkcję poza oczekiwanym obszarem pamięci, a to w najlepszym przypadku skutkuje naruszeniem ochrony pamięci i przedwczesnym zakończeniem programu.
|
Przykład
#include <cstdio>
int main()
{
char wiersz[ 100 ];
gets( wiersz );
printf( "Wczytany tekst: %s\n", wiersz );
return 0;
}
Przykładowe standardowe wyjście programu:
Dokumentacja serwisu cpp0x.pl
Wczytany tekst: Dokumentacja serwisu cpp0x.pl
Zagadnienia powiązane
fgets | Wczytuje jeden wiersz tekstu ze wskazanego strumienia. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.