Funzione gets

di Anonimizzato19537 il
26 risposte
Salve a tutti ho creato questo semplicissimo e banalissimo programma che mi stampi una frase appena immessa, lo so che è stupido però non riesco a capire perchè non mi fa compilare e mi da questo errore: warning: implicit declaration of function ‘gets’, grazie a tutti

#include <stdio.h>

#define STR 80

int main(void)
{
   char sentence[STR];
   
   printf("inserisci una frase:\n");
   gets(sentence);
   
   printf("%s\n", sentence);
   
 return 0;
 }

26 Risposte

  • Non hai dichiarato gets?
  • Cioè come si dichiara, non è presente nella libreria stdio.h?
  • Se compili con C11 tieni presente che gets è stata rimossa da stdio.h

    Usa fgets al posto tenendo presente il comportamento un po' diverso

    P.S. stdio.h non è una libreria
  • oregon ha scritto:


    Se compili con C11 tieni presente che gets è stata rimossa da stdio.h

    Usa fgets al posto tenendo presente il comportamento un po' diverso

    P.S. stdio.h non è una libreria

    hai ragione è l'header della libreria standard del c. Scusami, (forse è un po' da ignoranti), come faccio a sapere se compilo con c11, c89 o altro? Infine visto che è probabilmente ho il c11 e quindi la gets non è presente in stdio.h mi potresti dire dove si trova ora o l'hanno rimossa completamente? Grazie
  • Come ti ho detto, usa la fgets. Non c'è la gets per la compilazione C11. Oppure imposta la compilazione con standard inferiore (non so come compili e con quali strumenti)
  • Compilo con ubuntu da terminale, va bene grazie mille
  • Ubuntu non è un compilatore

    Quale compilatore e versione usi?
  • Uso il gcc come faccio a sapere la versione?
  • Usa gcc --version
  • Eccola qui gcc 6.2.0 20161005.
  • Prova a compilare includendo l'opzione

    -std=c++98

    nella linea di comando
  • Ho compilato cosi: gcc prova.c -std=c++98
    cc1: warning: command line option ‘-std=c++98’ is valid for C++/ObjC++ but not for C
    prova.c: In function ‘main’:
    prova.c:8:4: warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration]
    gets(parola);
    ^~~~
    /tmp/cc5MXhHT.o: nella funzione "main":
    prova.c:(.text+0x35): attenzione: the `gets' function is dangerous and should not be used.


    Comunque grazie mille sia per la disponibilità che per la pazienza, userò la fgets come mi hai detto
  • Se è C

    -std=c98
  • Gcc prova.c -std=c98
    gcc: error: unrecognized command line option ‘-std=c98’; did you mean ‘-std=c90’?
Devi accedere o registrarti per scrivere nel forum
26 risposte