Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    [c++] errore nel compiler

    buongiorno,
    ho questo codice e mi succede questo (ho allegato l'immagine di ciò che succede a parole l'avrei spiegato ma l'immagine parla da se)

    come mai succede?

    codice:
    #include <cstring>
    #include <iostream>
    using namespace std;
    int main()
    {
        int n_stud,voto;
        char nome[25],cognome[25];
        cout<<"inserisci il numero di studenti neolaureati\n";
        cin>>n_stud;
        cin.ignore();
        for(int i=0;i<n_stud;i++)
        {        
        cout<<"inserisci il nome dello studente\n";
        cin.getline(nome,25);
        cout<<"inserisci il cognome dello studente\n";
        cin.getline(cognome,25);
        cout<<"inserisci il suo voto di laurea\n";
        cin>>voto;
        }
        system("pause");
        return 0;    
    }
    Immagini allegate Immagini allegate

  2. #2
    È lo stesso problema dell'altro thread, che deriva dal mescolare funzioni di input formattato e non formattato.
    L'operatore >> lascia nel buffer di input il newline finale, il che non è un problema se usi sempre >> (dato che salta automaticamente tutti gli a capi/spazi/tabulazioni iniziali), ma dà fastidio a getline, che trova subito un ritorno a capo e pensa che la stringa da leggere sia finita.

    La soluzione, come spiegato prima, è una chiamata a ignore subito dopo l'ultima cin>> del ciclo, in modo da non lasciare in giro dei newline spurii.

    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ah okkai grazie della spiegazione infatti ora inserito l'ignore dopo l'ultimo cin ed è tutto sistemato, grazie mille, alla prossima!!

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.