Condividi tramite


gets, _getws

Ottiene una linea dallo stream stdin. Sono disponibili versioni più sicure di queste funzioni; vedere gets_s, _getws_s.

Importante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

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

Parametri

  • buffer
    Percorso di archiviazione per la stringa di input.

Valore restituito

Restituisce il relativo argomento se ha esito positivo. Un puntatore a NULL indica un errore o una condizione di fine file. Utilizzare ferror o feof per determinare quale si è verificato. Se il buffer è NULL, queste funzioni richiamano un gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono NULL e impostano errno a EINVAL.

Note

La funzione gets legge una riga dal flusso di input predefinito stdin e lo memorizzata in buffer. La riga è costituita da tutti i caratteri fino al primo carattere di nuova riga ('\n') incluso. gets quindi sostituisce il carattere di nuova riga con un carattere null ('\0') prima di restituirla. Al contrario, la funzione fgets mantiene il carattere di nuova riga. _getws è una versione a caratteri di tipo "wide" di gets; il relativo argomento e valore restituito sono stringhe di caratteri di tipo "wide".

Nota sulla sicurezzaNota sulla sicurezza

Poiché non è possibile limitare il numero di caratteri da leggere tramite la gets, un input non attendibile può facilmente causare dei sovraccarichi del buffer.In alternativa, utilizzare fgets.

In C++, queste funzioni presentano overload dei modelli che richiamano le relative controparti sicure e più recenti. Per ulteriori informazioni, vedere Overload di modelli sicuri.

Mapping di routine su testo generico

Routine TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_getts

gets

gets

_getws

Requisiti

Routine

Intestazione obbligatoria

gets

<stdio.h>

_getws

<stdio.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.

Esempio

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

Si noti che input lunghi più di 20 caratteri sovraccaricheranno il buffer della riga e quasi certamente causeranno l'arresto anomalo del programma.

  

Equivalente .NET Framework

System::Console::Read

Vedere anche

Riferimenti

I/O di flusso

fgets, fgetws

fputs, fputws

puts, _putws