Aracılığıyla paylaş


gets_s, _getws_s

Akıştan stdin bir satır alır. 'nin gets _getwsbu sürümleri, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmelerine sahiptir.

Sözdizimi

char *gets_s(
   char *buffer,
   size_t sizeInCharacters
);
wchar_t *_getws_s(
   wchar_t *buffer,
   size_t sizeInCharacters
);
template <size_t size>
char *gets_s( char (&buffer)[size] ); // C++ only

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

Parametreler

buffer
Giriş dizesi için depolama konumu.

sizeInCharacters
Arabelleğin boyutu.

Dönüş değeri

Başarılı olursa döndürür buffer . İşaretçi NULL bir hatayı veya dosya sonu koşulunu gösterir. Hangisinin oluştuğuna karar vermek için veya feof kullanınferror.

Açıklamalar

işlevi, gets_s 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 fazla tüm karakterlerden oluşur. gets_s ardından, satırı döndürmeden önce yeni satır karakterini null karakterle ('\0') değiştirir. Buna karşılık, fgets_s işlev yeni satır karakterini korur.

okunan ilk karakter dosya sonu karakteriyse, null karakter başında bufferdepolanır ve NULL döndürülür.

_getws_s geniş karakterli bir sürümüdür gets_s; bağımsız değişkeni ve dönüş değeri geniş karakterli dizelerdir.

Sıfıra NULL buffer eşit veya sizeInCharacters sıfırdan küçükse veya sıfıra eşitse ya da arabellek giriş satırını ve null sonlandırıcıyı içeremeyecek kadar küçükse, bu işlevler Parametre doğrulamasında 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ür NULL ve errno değerini olarak ERANGEayarlar.

C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkarabilir (boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır) ve eski, güvenli olmayan işlevleri yeni ve güvenli karşılıklarıyla otomatik olarak değiştirebilir. 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 olağan _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_getts_s gets_s gets_s _getws_s

Gereksinimler

Yordam Gerekli başlık
gets_s <stdio.h>
_getws_s <stdio.h> veya <wchar.h>

Konsol Evrensel Windows Platformu (UWP) uygulamalarında desteklenmez. C çalışma zamanı işlevlerinin UWP uygulamalarında kullanabilmesi için önce konsolu stdin, , stdoutve stderrile ilişkilendirilmiş standart akış tanıtıcılarının yeniden yönlendirilmesi gerekir. Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets_s( line, 20 );
   printf( "The line entered was: %s\n", line );
}
Hello there!
The line entered was: Hello there!

Ayrıca bkz.

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