Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C++] funzione gets() e ripetizione programma

    Ciao ragazzi, mi servirebbe un aiuto se possibile..
    in pratica ho un compito da svolgere per il mio professore,un programmino che conta il numero di sottostringhe d'elementi uguali presenti in un vettore ordinato inserito in ingresso tramite tastiera...

    il programma è risolto,funziona correttamente,però c'è solo un problema

    il codice per inserire una stringa,almeno quello che ho studiato io è :

    gets(stringa); il codice ti permettere di inserire stringhe di caratteri come questa : "aaabcde fgh",diciamo contando anche gli spazi,la funzione gets() gira perfettamente ma c'è un solo problema,poichè io ho creato il programma in modo che si possa ripetere quante volte si vuole l'operazione,c'è bisogno di pulire la funzione gets.. poichè ogni volta che ripeto il programma,viene eseguito con la stessa stringa inserita in precedente
    bè io proprio non so come si pulisce...
    c'è qualcuno di vuoi che lo sa e mi può aiutare?

    ve ne sarei molto grato,buon sabato sera a tutti

  2. #2
    "pulire la funzione gets"?
    Posta il codice che hai scritto finora...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Forse non mi sono spiegato bene..

    Inserita ad esempio la stringa "ciao" il programma effettua il suo compito (il programma gira perfettamente), e mi chiede se voglio continuare ed inserire un'altra stringa,io dico di si,ma il programma ha in memoria ancora la stringa "ciao" e quindi non mi permette di inserire un'altra stringa,in pratica continua l'operazioen con la stringa "ciao".

    il problema compare solo se nel codice inserisco il comando gets(stringa);
    se invece uso il comando cin>>stringa; il programma funziona perfettamente e me lo fa ripetere tranquillamente.

    Ora mi direte,usa la cin allora...

    io invece ho bisogno di usare la gets() perchè la gets() conta anche i gli spazi vuoti mentre la cin no...

    Mi hanno detto che la gets() va ripulita... per questo chiedevo a voi

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da inlovewithme
    Forse non mi sono spiegato bene..
    Ma forse tu non hai letto quello che ti ha scritto MItaly ...

    ... ti aveva detto di postare il codice che hai scritto ...

  5. #5
    è inutile postare il codice se so dov'è il problema
    pensavo solo di non essermi speigato bene,se è indispensabile lo posto
    so che devo ripulire la gets() perchè è come se tenesse in memoria la stessa stringa inserita precedentemente,il problema è che non so come far

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da inlovewithme
    è inutile postare il codice se so dov'è il problema
    pensavo solo di non essermi speigato bene,se è indispensabile lo posto
    Dato che "ripulire la gets" non significa proprio nulla e dato che due persone che ti hanno risposto ti chiedono di postare il codice, potrai farlo ... no?

  7. #7
    sprucido
    spè ora lo posto ^*
    grazie per l'interessamento comunque

  8. #8
    --

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La main deve essere

    codice:
    int main()
    {
      char a[80];
      int rip;
      do
      {
        system("CLS"); 
        cout<<"\n***PROVA N.10*** \n";
        inserisci(a); 
        funzione(a); 
        cout<<"Digitare 1 per continuare,0 per uscire\n";
        cin>>rip;
        cin.ignore(1, '\n');
      } while (rip==1); 
    }
    nota le modifiche in grassetto.

    P.S. Non sono scorbutico ... posso sembrare antipatico quando devo inviare n messaggi prima di ricevere una risposta adeguata per dare un aiuto ...

  10. #10
    impressionante *_*
    funziona perfettamente,se non ti è di disturbo,puoi spiegare come funziona e cos'è ?

    ovviamente mi riferisco al --> cin.ignore(1, '\n');

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.