Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come leggere matrici di char
Forum - C/C++ - Come leggere matrici di char

Avatar
osharko (Normal User)
Pro


Messaggi: 124
Iscritto: 16/04/2011

Segnala al moderatore
Postato alle 16:46
Venerdì, 30/09/2011
salve gente, avrei un problema..
sto creando un programma che ha lo scopo di memorizzare i nomi degli alunni di una classe con i rispettivi voti..
purtroppo quando cerco di leggere il nome, il ciclo si conclude con la prima lettura senza nemmeno leggere i voti..


int main(int argc, char *argv[])
{
    system("color 0a");
char nomi[30][20],pal=248;
int voti[30],numel;  
   do{
                      cout<<"\nInserisci il numero di elementi che vuoi inserire (non maggiori di 30) => ";
                      cin>>numel;
                      }while((numel <0)||(numel >30));
  
   for(int i=0;i<numel;i++)
   {
           cout<<"\nInserisci il "<<i+1<<pal<<" nome e poi il voto => "<<endl;
           cin.getline(nomi,20);
           cin>>voti;
    }
  
  
  
  
  
  
  
    system("PAUSE");
    return EXIT_SUCCESS;
}


questo è il codice non completo che sto sviluppando..
ma purtroppo non funziona bene


osharko ha allegato un file: sd.png (185562 bytes)
Clicca qui per guardare l'immagine


Bha!!!
PM Quote
Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 17:09
Venerdì, 30/09/2011
Spero che questo sia come dici tu....

#include <iostream>
#include <string>
using namespace std;

const int NumeroStudenti=5;

int main()
{
    string Nome[NumeroStudenti]; //Array di stringhe contenete i nome;
    int Voto[NumeroStudenti];    //Array di interi contenente i voti;

    for (int i=0; i<NumeroStudenti; i++)
    {
        cout<<"Nome studente "<<i<<" : ";
        getline(cin, Nome);

        cout<<"Voto studente "<<i<<" : ";
        cin>>Voto;
        cin.ignore();
    }

    cout<<"\nStudenti Inseriti"<<endl;

    for (int i=0; i<NumeroStudenti; i++)
        cout<<Voto <<", "<<Nome<<endl;

    system("pause");
    return 0;
}


Per eventuali informazioni, non esitare a chidere..Ciao..:k:


c/c++, j2EE
PM Quote
Avatar
osharko (Normal User)
Pro


Messaggi: 124
Iscritto: 16/04/2011

Segnala al moderatore
Postato alle 17:19
Venerdì, 30/09/2011
io però devo farlo come matrice di char e non vettore di string...
p.s. scusa ma ora scendo torno stasera tardi, se riuscissi a farmi trovare un altra soluzione simile tene sarei moolto grato


Bha!!!
PM Quote
Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 17:27
Venerdì, 30/09/2011
#include <iostream>
using namespace std;

const int NumeroStudenti=5;

int main()
{
    char Nome[NumeroStudenti][20]={'\0'}; //Array di stringhe contenete i nome;
    int Voto[NumeroStudenti];    //Array di interi contenente i voti;

    for (int i=0; i<NumeroStudenti; i++)
    {
        cout<<"Nome studente "<<i<<" : ";
        cin.getline(Nome,20);

        cout<<"Voto studente "<<i<<" : ";
        cin>>Voto;
        cin.ignore();
    }

    cout<<"\nStudenti Inseriti"<<endl;

    for (int i=0; i<NumeroStudenti; i++)
        cout<<Voto <<", "<<Nome<<endl;

    return 0;
}


c/c++, j2EE
PM Quote
Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 17:29
Venerdì, 30/09/2011
Testo quotato

Postato originariamente da sarbaturino:

#include <iostream>
using namespace std;

const int NumeroStudenti=5;

int main()
{
    char Nome[NumeroStudenti][20]={'\0'}; //Array di stringhe contenete i nome;
    int Voto[NumeroStudenti];    //Array di interi contenente i voti;

    for (int i=0; i<NumeroStudenti; i++)
    {
        cout<<"Nome studente "<<i<<" : ";
        cin.getline(Nome [ i ] ,20);

        cout<<"Voto studente "<<i<<" : ";
        cin>>Voto;
        cin.ignore();
    }

    cout<<"\nStudenti Inseriti"<<endl;

    for (int i=0; i<NumeroStudenti; i++)
        cout<<Voto <<", "<<Nome<<endl;

    return 0;
}



c/c++, j2EE
PM Quote
Avatar
osharko (Normal User)
Pro


Messaggi: 124
Iscritto: 16/04/2011

Segnala al moderatore
Postato alle 22:50
Venerdì, 30/09/2011
ma poi se faccio
cin.getline(Nome,20);
leggerà sempre la stessa riga, o no?! .-.
p.s. grazie per l'aiuto :)


Bha!!!
PM Quote
Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 13:33
Sabato, 01/10/2011
Se vuoi diventare un programmatore, non abbassarti solamente al copia ed incolla..
Prova, scrivi, compila e cerca a capire gli errori e crescerai notevolmente...
Chi fa da sè, fa per tre..:k::pat:



c/c++, j2EE
PM Quote
Avatar
osharko (Normal User)
Pro


Messaggi: 124
Iscritto: 16/04/2011

Segnala al moderatore
Postato alle 14:39
Sabato, 01/10/2011
grazie per tutto quanto :)


Bha!!!
PM Quote