Freigeben über


gets_s, _getws_s

Ruft eine Zeile aus dem stdin -Stream ab. Diese Versionen von gets, _getws verfügen über Sicherheitsverbesserungen, wie in sicherheitsfeatures im CRT beschrieben.

Syntax

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

Parameter

buffer
Speicherort für die Eingabezeichenfolge.

sizeInCharacters
Die Größe des Puffers.

Rückgabewert

Gibt bei Erfolg buffer zurück. Ein NULL -Zeiger weist auf einen Fehler oder eine Dateiendebedingung hin. Verwenden ferror oder feof bestimmen Sie, welche Person aufgetreten ist.

Hinweise

Die gets_s-Funktion liest eine Zeile aus dem Standardeingabestream stdin und speichert sie in buffer. Die Zeile besteht aus allen Zeichen bis zum ersten Zeilenumbruchzeichen ('\n'). gets_s ersetzt dann das Zeilenumbruchzeichen durch ein Nullzeichen ('\0'), bevor die Zeile zurückgegeben wird. Im Gegensatz dazu behält die fgets_s-Funktion das Zeilenumbruchzeichen bei.

Wenn das erste Zeichen das Ende des Dateizeichens ist, wird am Anfang des bufferZeichens ein NULL-Zeichen gespeichert und NULL zurückgegeben.

_getws_s ist eine Breitzeichenversion von gets_s. Das Argument und der Rückgabewert sind Breitzeichen-Zeichenfolgen.

Wenn buffer der Wert kleiner oder gleich Null ist NULL oder sizeInCharacters kleiner als oder gleich Null ist oder der Puffer zu klein ist, um die Eingabezeile und den Null-Endator zu enthalten, rufen diese Funktionen einen ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen NULL zurück und setzen "errno" auf ERANGE.

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht; die Überladungen können automatisch Rückschlüsse auf die Pufferlänge ziehen (wodurch kein Größenargument mehr angegeben werden muss), und sie können automatisch die älteren, nicht sicheren Funktionen durch ihre neueren, sicheren Entsprechungen ersetzen. Weitere Informationen finden Sie unter Secure Template Overloads.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_getts_s gets_s gets_s _getws_s

Anforderungen

Routine Erforderlicher Header
gets_s <stdio.h>
_getws_s <stdio.h> oder <wchar.h>

Die Konsole wird in UWP-Apps (Universelle Windows-Plattform) nicht unterstützt. Die mit der Konsole verknüpften Standardstreamhandles stdin, stdout und stderr müssen umgeleitet werden, bevor sie von C-Laufzeitfunktionen in UWP-Apps verwendet werden können. Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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!

Siehe auch

Stream-E/A
gets, _getws
fgets, fgetws
fputs, fputws
puts, _putws