_cgets, _cgetws
Konsoldan bir karakter dizesi alır.Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _cgets_s, _cgetws_s.
Önemli |
---|
Bu API, Windows Çalışma Zamanı'nda yürütülen uygulamalarda kullanılamaz.Daha fazla bilgi için bkz /ZW ile desteklenmeyen CRT işlevleri. |
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
Veri için depolama konumu
Dönüş Değeri
_cgets ve _cgetws, buffer[2] öğesinde başlangıç dizesine bir işaretçi döndürür.buffer öğesi NULL ise, 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 etmesine izin verilirse, bunlar NULL döndürür ve errno öğesini EINVAL olarak ayarlar.
Notlar
Bu işlevler, konsoldan bir karakter dizesini okur ve dizeyi ve uzunluğunu buffer ile gösterilen konuma kaydeder.buffer parametresi, bir karakter dizisine bir işaretçi olmalıdır.Dizinin ilk öğesi buffer[0], okunacak olan dizenin maksimum uzunluğunu (karakter olarak) içermelidir.Dizide dizeyi tutmak için yeterli sayıda öğe, sonlandırıcı bir null karakteri ('\0') ve 2 ek bayt olması gerekir.İşlev bir satır başı besleme (CR-LF) birleşimi veya belirli bir karakter sayısı okunana kadar karakterleri okur.Dize, buffer[2]'dan başlayarak depolanıyor.İşlev CR-LF yazıyorsa null karakteri ('\0') depolar.Ardından işlev ikinci dizi öğesi buffer[1] 'ı içerisindeki dizinin gerçek uzunluğunu saklar.
_cgets veya _cgetws bir konsol penceresindeyken çağırıldığında tüm düzenleme tuşları etkin olduğu için, F3 tuşuna basılması en son girilen girdiyi yineler.
C++ dilinde, bu işlevlerin daha yeni ve güvenli karşıtlarını başlatan şablon aşırı yüklemeleri vardır.Daha fazla bilgi için bkz. Güvenli Şablon Aşırı Yüklemeleri.
Genel Metin Yordam Eşleşmeleri
Tchar.h yordamı |
_UNICODE ve _MBCS tanımlanmaz |
_MBCS tanımlanmış |
_UNICODE tanımlanmış |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> veya <wchar.h> |
Daha fazla ek uyumluluk bilgileri 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 );
}
}