gets, _getws
Ruft eine Zeile aus dem stdin-Stream ab. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter gets_s, _getws_s.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
char *gets(
char *buffer
);
wchar_t *_getws(
wchar_t *buffer
);
template <size_t size>
char *gets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws(
wchar_t (&buffer)[size]
); // C++ only
Parameter
- buffer
Speicherort für die Eingabezeichenfolge.
Rückgabewert
Gibt bei Erfolg das Argument zurück. Ein NULL-Zeiger weist auf einen Fehler oder eine Dateiendebedingung hin. Verwenden Sie ferror oder feof, um festzulegen, was aufgetreten ist. Wenn bufferNULL 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 EINVAL.
Hinweise
Die gets-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 ersetzt dann das Zeilenumbruchzeichen durch ein NULL-Zeichen ('\0'), ehe die Zeile zurückgegeben wird. Im Gegensatz dazu behält die fgets-Funktion das Zeilenumbruchzeichen bei. _getws ist eine Breitzeichenversion von gets. Das Argument und der Rückgabewert sind Breitzeichen-Zeichenfolgen.
Sicherheitshinweis |
---|
Da es keine Möglichkeit gibt, die Anzahl von Zeichen einzuschränken, die von "gets" gelesen werden, kann eine nicht vertrauenswürdige Eingabe zu Pufferüberläufen führen.Verwenden Sie stattdessen fgets. |
In C++ haben diese Funktionen Vorlagenüberladungen, mit denen die neueren, sicheren Entsprechungen dieser Funktionen aufgerufen werden. Weitere Informationen finden Sie unter Sichere Vorlagenüberladungen.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_getts |
gets |
gets |
_getws |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
gets |
<stdio.h> |
_getws |
<stdio.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_gets.c
// compile with: /WX /W3
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets( line ); // C4996
// Danger: No way to limit input to 20 chars.
// Consider using gets_s instead.
printf( "The line entered was: %s\n", line );
}
Beachten Sie, dass Eingaben, die länger als 20 Zeichen sind, zu einem Überlauf des Zeilenpuffers führen und das Programm vermutlich zum Absturz bringen.