gets_s
, _getws_s
Akıştan stdin
bir satır alır. 'nin gets
_getws
bu 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 buffer
depolar. 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 buffer
depolanı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 ERANGE
ayarlar.
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
, , stdout
ve stderr
ile 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