gets_s, _getws_s
Rufen Sie eine Zeile aus dem stdin Stream ab.Diese sind Versionen von ruft, _getws ab mit Sicherheitserweiterungen, wie in Sicherheitsfeatures im 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 Eingabezeichenfolge.[in] sizeInCharacters
Die Größe des Puffers.
Rückgabewert
Wenn die Ausführung erfolgreich ist, wird buffer zurückgegeben.Ein Zeiger NULL gibt einen Fehler oder eine Dateiende-Bedingung an.Verwenden Sie ferror oder feof, um zu bestimmen, welches aufgetreten ist.
Hinweise
Die gets_s-Funktion liest eine Zeile im Standardeingabestream stdin und speichert sie in buffer.Die Zeile besteht aus allen Zeichen bis einschließlich dem ersten Zeilenumbruchzeichen ("\n ").gets_s ersetzt dann das Zeilenumbruchzeichen durch ein NULL-Zeichen ("\0 ") bevor die Zeile zurückgibt.Im Gegensatz dazu wird die fgets_s-Funktion das Zeilenumbruchzeichen bei.
Wenn das erste Zeichenlesen das Dateiendezeichen ist, wird ein NULL-Zeichen am Anfang buffer gespeichert und NULL wird zurückgegeben.
_getws ist eine Breitzeichen-Version von gets_s; Argument und Rückgabewert sind Breitzeichen-Zeichenfolgen.
Wenn bufferNULL ist, oder sizeInCharacters kleiner oder gleich null ist oder wenn der Puffer zu klein ist, die Eingabezeile und das NULL-Zeichen enthalten soll, rufen diese Funktionen einen ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen NULL zurück und legen errno auf ERANGE fest.
In C++ mithilfe dieser Funktionen wird durch Vorlagenüberladungen vereinfacht; die Überladungen können die Pufferlänge (die Anforderung automatisch beseitigend ableiten, ein Größenargument anzugeben) und können die älteren, nicht-sicheren Funktionen durch ihre späteren, sicheren Entsprechungen automatisch ersetzen.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.
Zuordnung generische 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 nicht in Windows Store-App unterstützt.Die Standardstreamhandles, die mit der Konsole, stdin, stdout und stderr zugeordnet werden, müssen umgeleitet werden, bevor sie C-Laufzeitfunktionen in Windows Store-App verwenden können.So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.
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 );
}