Freigeben über


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 );
}
  

.NET Framework-Entsprechung

System::Console::Read

Siehe auch

Referenz

Stream-E/A

gets, _getws

fgets, fgetws

fputs, fputws

puts, _putws