Udostępnij za pośrednictwem


_cgets, _cgetws

Pobiera ciąg znaków z konsoli.Bezpieczniejsze wersje te funkcje są dostępne; see _cgets_s, _cgetws_s.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW.

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

Parametry

  • buffer
    Miejsca przechowywania danych.

Wartość zwracana

_cgetsi _cgetws zwróci wskaźnik do początku ciągu znaków, buffer[2].Jeśli buffer jest NULL, funkcje te wywołuje procedurę obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, zwracały NULL i errno do EINVAL.

Uwagi

Funkcje te odczytuje ciąg znaków z konsoli ani nie przechowuje ciąg znaków, a jego długość w lokalizacji wskazywanej przez buffer.buffer Parametr musi być wskaźnik do tablicy znaków.Pierwszy element tablicy, buffer[0], musi zawierać maksymalna długość (w znakach) w ciągu do odczytu.Tablica musi zawierać tyle elementów, aby pomieścić ciąg, kończącego znaku null ('\0') i 2 dodatkowe bajty.Funkcja odczytuje znaki, do momentu return–line przewozu źródła kombinacji (CR-LF) lub określoną liczbę znaków jest do odczytu.Ciąg jest przechowywany, począwszy od buffer[2].Jeśli funkcja CR-LF, przechowywanych w niej znak null ('\0').Funkcja następnie przechowuje rzeczywista długość ciągu drugiego elementu tablicy, buffer[1].

Ponieważ wszystkie klawiszy edycji są aktywne, gdy _cgets lub _cgetws jest nazywany podczas, gdy w konsoli okno, naciskając klawisz F3 powtarza ostatni wpis wprowadzony.

W języku C++ te funkcje mają overloads szablonu, które wywołują odpowiednikami nowych, bezpiecznych funkcji.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_cgetts

_cgets

_cgets

_cgetws

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_cgets

<conio.h>

_cgetws

<conio.h> lub <wchar.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Przykład

// 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 );
   }
}
  

Zobacz też

Informacje

Konsoli i portów We/Wy

_getch, _getwch