gets_s, _getws_s
Ruft eine Zeile aus dem stdin-Stream ab. Diese Versionen von gets, _getws enthalten Sicherheitserweiterungen wie unter Sicherheitsfunktionen in der CRT beschrieben.
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
[out] buffer
Speicherort für die Eingabezeichenfolge.[in] 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 Sie ferror oder feof, um festzulegen, was aufgetreten ist.
Hinweise
Die gets_s-Funktion liest eine Zeile aus dem Standardeingabestream stdin und speichert sie in buffer. Die Zeile enthält alle Zeichen einschließlich des ersten Zeilenumbruchzeichens ('\n'). gets_s ersetzt dann das Zeilenumbruchzeichen durch ein NULL-Zeichen ('\0'), ehe die Zeile zurückgegeben wird. Im Gegensatz dazu behält die fgets_s-Funktion das Zeilenumbruchzeichen bei.
Wenn das erste gelesene Zeichen das Dateiendezeichen ist, wird ein NULL-Zeichen am buffer-Anfang gespeichert und NULL zurückgegeben.
_getws ist eine Breitzeichenversion von gets_s. Das Argument und der Rückgabewert sind Breitzeichen-Zeichenfolgen.
Wenn bufferNULL ist oder wenn sizeInCharacters kleiner oder gleich null oder wenn der Puffer zu klein für die Eingabezeile und das abschließende NULL-Zeichen ist, rufen diese Funktionen einen Handler für ungültige Parameter auf, wie in Parametervalidierung 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.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_getts |
gets_s |
gets_s |
_getws |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
gets_s |
<stdio.h> |
_getws |
<stdio.h> oder <wchar.h> |
Die Konsole wird in Windows Store-Apps nicht unterstützt. Die mit der Konsole verknüpften Standardstreamhandles, stdin, stdout und stderr, müssen umgeleitet werden, bevor sie von C-Laufzeitfunktionen in Windows Store-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 );
}