Acquisizione sicura senza scanf

di Anonimizzato8544 il
10 risposte
Salve ragazzi mi chiedevo com'è possibile acquisire una stringa senza usare la scanf mi spiego
la scanf è molto soggetta a craking etc mentre io cerco qualcosa che anche se portata all'limite sia ancora molto gestibile(non craschi) grazie

10 Risposte

  • Fgets() più parsing in proprio di ciò che leggi (il che significa anche fgets() + sscanf() ovviamente).
  • Potresti dirmi come la devo usare ?? uno stralcio di codice su come devo impostarla xd
  • Si ma se non so nemmeno i parametri che accetta ho provato così
    
    
    int main(int argc, const char * argv[])
    {  int i=0;
        char *a;
        
        a=malloc(sizeof(char*));
        sscanf(a,i);
    
    
    
  • broke31 ha scritto:


    si ma se non so nemmeno i parametri che accetta
    Appunto ! Nella documentazione c'è tutto quello che ti serve. Per questo si deve leggere prima!
    ho provato così
    Ma per fare cosa? Hai allocato un puntatore ... a che serve?

    Come ti ho detto altre volte, non per scoraggiarti, ma se non comprendi esattamente come trattare i puntatori e l'allocazione della memoria (intendo proprio che non devi avere alcun dubbio sul loro utilizzo) è meglio fermarsi prima di passare ad altro.
  • No ho preferito separare le discussioni perchè in 1 parlo di come ovviare al fatto che scanf fa andare tutto in crash quando si inserisce 1 tipo di dato non corrispondente e in questa cerco di capire in che modo acquisire una stringa a prova di cracking il mio prof dell'uni mi ha consigliato questo per email:

    Suggerimento: usa un buffer statico
    char *inputbuffer[LUNGHEZZA];
    e scanf() o simili le fai scrivere là dento.




    ma a righe di codice una cosa del genere non l'ho mai fatta quindi non so come la dovrei implementare
  • Char *inputbuffer[LUNGHEZZA];

    è un vettore di puntatori ... non ti avrà forse detto

    char inputbuffer[LUNGHEZZA];

    ?
  • Non credo perchè ho copia e incollato la sua email
  • Allora chiedi chiarimenti perché mi sa che c'è qualche equivoco o il tuo professore ha sbagliato.
Devi accedere o registrarti per scrivere nel forum
10 risposte