Freigeben über


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.

SicherheitshinweisSicherheitshinweis

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.

  

.NET Framework-Entsprechung

System::Console::Read

Siehe auch

Referenz

Stream-E/A

fgets, fgetws

fputs, fputws

puts, _putws