Aracılığıyla paylaş


gets, _getws

Akıştan stdin bir satır alır. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. gets_s, _getws_s.

Önemli

Bu işlevler eskidir. Visual Studio 2015'te başlayarak, bunlar CRT'de kullanılamaz. Bu işlevlerin gets_s ve _getws_s'nin güvenli sürümleri hala kullanılabilir. Bu alternatif işlevler hakkında bilgi için, bkz. gets_s, _getws_s.

Önemli

Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.

Sözdizimi

char *gets(
   char *buffer
);
wchar_t *_getws(
   wchar_t *buffer
);
template <size_t size>
char *gets(
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws(
   wchar_t (&buffer)[size]
); // C++ only

Parametreler

buffer
Giriş dizesi için konum Depolama.

Dönüş değeri

Başarılı olursa bağımsız değişkenini döndürür. İşaretçi NULL bir hatayı veya dosya sonu koşulunu gösterir. Hangisinin oluştuğuna karar vermek için veya feof kullanınferror. ise bufferNULL, bu işlevler Parametre doğrulama bölümünde açıklandığı gibi geçersiz bir parametre işleyicisi çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlevler döndürülerek NULL olarak EINVALayarlanırerrno.

Açıklamalar

işlevi, gets standart giriş akışından stdin bir satırı okur ve içinde bufferdepolar. Satır, ilk yeni satır karakteri ('\n') dahil olmak üzere en fazla ve en çok karakterden oluşur. gets ardından, satırı döndürmeden önce yeni satır karakterini null karakterle ('\0') değiştirir. Buna karşılık, fgets işlev yeni satır karakterini korur. _getws geniş karakterli bir sürümüdür gets; bağımsız değişkeni ve dönüş değeri geniş karakterli dizelerdir.

Önemli

tarafından getsokunan karakter sayısını sınırlamanın bir yolu olmadığından güvenilmeyen giriş arabellek taşmalarına kolayca neden olabilir. Bunun yerine fgets kullanın.

C++ dilinde, bu işlevlerin daha yeni ve güvenli karşılıklarını çağıran şablon aşırı yüklemeleri vardır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_getts gets gets _getws

Gereksinimler

Yordam Gerekli başlık
gets <stdio.h>
_getws <stdio.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_gets.c
// compile with: /WX /W3

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets( line );  // C4996
   // Danger: No way to limit input to 20 chars.
   // Consider using gets_s instead.
   printf( "The line entered was: %s\n", line );
}

20 karakterden uzun olan girişler satır arabelleğinin üzerinde taşacak ve neredeyse kesin olarak programın kilitlenmesine neden olacaktır.


Hello there!The line entered was: Hello there!

Ayrıca bkz.

Akış G/Ç
fgets, fgetws
fputs, fputws
puts, _putws