Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Konsoldan bir karakter dizesi alır. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _cgets_s, _cgetws_s.
Önemli
Bu işlevler eskidir. Visual Studio 2015'te başlayarak, bunlar CRT'de kullanılamaz. Bu işlevlerin _cgets_s ve _cgetws_s güvenli sürümleri hala kullanılabilir. Bu alternatif işlevler hakkında bilgi için, bkz. _cgets_s, _cgetws_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 *_cgets(
char *buffer
);
wchar_t *_cgetws(
wchar_t *buffer
);
template <size_t size>
char *_cgets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_cgetws(
wchar_t (&buffer)[size]
); // C++ only
Parametreler
buffer
Verilerin depolama konumu.
Dönüş değeri
_cgetsve _cgetws dizenin başlangıcına bir işaretçi döndürür.buffer[2] ise buffer NULL, bu işlevler Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, geri döner NULL ve olarak EINVALayarlanırerrno.
Açıklamalar
Bu işlevler konsolundan bir karakter dizesi okur ve dizeyi ve uzunluğunu ile bufferişaret ettiği konumda depolar. parametresi bir buffer karakter dizisinin işaretçisi olmalıdır. Dizinin ilk öğesi olan buffer[0], okunacak dizenin uzunluk üst sınırını (karakter cinsinden) içermelidir. Dizi, dizeyi tutmak için yeterli öğe, sonlandırıcı bir null karakter ('\0') ve 2 ek bayt içermelidir. İşlev, satır başı besleme (CR-LF) bileşimi veya belirtilen karakter sayısı okunana kadar karakterleri okur. Dize, konumundan buffer[2]başlayarak depolanır. İşlev bir CR-LF okursa null karakteri ('\0') depolar. İşlev daha sonra dizenin gerçek uzunluğunu ikinci dizi öğesinde buffer[1]depolar.
Konsol penceresindeyken veya _cgetws çağrıldığında _cgets tüm düzenleme tuşları etkin olduğundan, F3 tuşuna basıldığında son girilen giriş yinelenir.
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 |
|---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_cgets.c
// compile with: /c /W3
// This program creates a buffer and initializes
// the first byte to the size of the buffer. Next, the
// program accepts an input string using _cgets and displays
// the size and text of that string.
#include <conio.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char buffer[83] = { 80 }; // Maximum characters in 1st byte
char *result;
printf( "Input line of text, followed by carriage return:\n");
// Input a line of text:
result = _cgets( buffer ); // C4996
// Note: _cgets is deprecated; consider using _cgets_s
if (!result)
{
printf( "An error occurred reading from the console:"
" error code %d\n", errno);
}
else
{
printf( "\nLine length = %d\nText = %s\n",
buffer[1], result );
}
}
A line of input.Input line of text, followed by carriage return:
Line Length = 16
Text = A line of input.