Funzione gets

di il
26 risposte

Funzione gets

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

  • Re: Funzione gets

    Non hai dichiarato gets?
  • Re: Funzione gets

    Cioè come si dichiara, non è presente nella libreria stdio.h?
  • Re: Funzione gets

    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
  • Re: Funzione gets

    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
  • Re: Funzione gets

    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)
  • Re: Funzione gets

    Compilo con ubuntu da terminale, va bene grazie mille
  • Re: Funzione gets

    Ubuntu non è un compilatore

    Quale compilatore e versione usi?
  • Re: Funzione gets

    Uso il gcc come faccio a sapere la versione?
  • Re: Funzione gets

    Usa gcc --version
  • Re: Funzione gets

    Eccola qui gcc 6.2.0 20161005.
  • Re: Funzione gets

    Prova a compilare includendo l'opzione

    -std=c++98

    nella linea di comando
  • Re: Funzione gets

    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
  • Re: Funzione gets

    Se è C

    -std=c98
  • Re: Funzione gets

    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