[C++] stesso codice ma errori con compilatori diversi

di il
19 risposte

19 Risposte - Pagina 2

  • Re: [C++] stesso codice ma errori con compilatori diversi

    oregon ha scritto:


    VS2012

    Ma nel caso 2 (decripta) non esiste il problema perché non c'è altro input dopo l'inserimento del nome del file ...

    Puoi postare uno zip con il progetto?
    Dev essere che con VS 2015 da fastidio...comunque nel caso 2 seppur non ci sia input, esegue le cout ma è come se saltasse le istruzioni che mandano a schermo la stringa criptata e decripata.
  • Re: [C++] stesso codice ma errori con compilatori diversi

    Non ho capito... Ma non credo proprio che vs2015 "salti" le cout !

    Il tuo problema sarà un altro...
  • Re: [C++] stesso codice ma errori con compilatori diversi

    Metti una

    cin.ignore();

    subito dopo l'input del nome del file (ed elimina la fflush)
  • Re: [C++] stesso codice ma errori con compilatori diversi

    oregon ha scritto:


    Metti una

    cin.ignore();

    subito dopo l'input del nome del file (ed elimina la fflush)
    Ora funziona, solo che se io scrivo "ciao" in input, mi cripta (e scrive su file) solo "iao" ovviamente criptato (ho provato a fare l'output solo del messaggio non criptato ma scarta lo stesso la prima lettera).
    Mentre sul decript sembra funzionare.

    UPDATE:
    funziona adesso, l'ultimo errore era una cin.ignore(); dopo inserisci testo, inserita per sbaglio.
  • Re: [C++] stesso codice ma errori con compilatori diversi

    @oregon nonostante il 2010 lo supporti, VS2015 NON supporta fflush(stdin) e l'ho imparato "a mie spese".
    una soluzione ufficiale (che in teoria sarebbe la cosa che BISOGNA fare, perchè ricordiamoci che fflush(stdin) non è standard, e nonostante sia usata da cani e porci dà risultati imprevedibili) personalmente non l'ho ancora trovata: bisogna piazzare nel posto giusto i cin.ignore, con opportuni '\n' o meno: con alcuni sorgenti mi funziona mettendoli subito prima della getline di una stringa, mentre altre volte non gli piacciono più messi lì e li vuole subito dopo il cin di un valore diverso da una stringa (che poi vorrei sapere cosa cambia da metterlo dopo il cin precedente alla stringa a metterlo prima del getline della stringa... cioè, il buffer ignorerà gli '\n' digitati ancora in memoria, però a volte gli sta antipatica se è messa prima della getline...).

    @Pietrob0b il problema è svuotare il buffer prima dell'input della stringa, quindi il cin.ignore mettilo dopo l'ultimo input prima di prendere la stringa.
Devi accedere o registrarti per scrivere nel forum
19 risposte