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 "Sichere Vorlagenüberladungen".

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

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 Universelle Windows-Plattform -Apps (UWP) nicht unterstützt. Die Standardstreamhandles, die der Konsole zugeordnet sind, stdinstdoutund stderrmüssen umgeleitet werden, bevor C-Laufzeitfunktionen sie in UWP-Apps verwenden 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