Programma c++, problema con vettori di stringhe

di il
9 risposte

Programma c++, problema con vettori di stringhe

Salve, ho un problema con un programma in c++.
Devo creare un vettore di stringhe(e fin qui ci sono) ed assegnare dei cognomi(che soddisfino una determinata condizione) contenenti in un vettore di strutture.
Il problema è quando assegno al vettore stringhe il cognome, perchè dice: assegnazione non valida.
grazie.

9 Risposte

  • Re: Programma c++, problema con vettori di stringhe

    Senza vedere il codice come si fa a vedere dove sbagli? Non credi?
  • Re: Programma c++, problema con vettori di stringhe

    .
  • Re: Programma c++, problema con vettori di stringhe

    oregon ha scritto:


    Senza vedere il codice come si fa a vedere dove sbagli? Non credi?
    questo è il pezzo di codice dove sbaglio :
    (va bene solo questo o devo metterlo tutto?)

    For(i=0;i<riemp;i++){
    somma=somma+v.numero; ( v è il vettore di strutture che contiene il cognome e il numero di esami)
    k++;
    }
    media=somma/k;

    for(i=0;i<riemp;i++){
    if(v.numero<media) (cerco il numero di esami minori della media e devo assegnarli ad un vettore di stringhe)
    v.studenti=v.cognome; ( e qui sbaglio ma non capisco come devo fare)
  • Re: Programma c++, problema con vettori di stringhe

    Le assegnazioni di stringhe si fanno con le funzioni, ad esempio la strcpy

    Mostra le strutture comunque perché c'è qualcosa che non quadra.

    Perché usi v.studenti ??
  • Re: Programma c++, problema con vettori di stringhe

    oregon ha scritto:


    Le assegnazioni di stringhe si fanno con le funzioni, ad esempio la strcpy

    Mostra le strutture comunque perché c'è qualcosa che non quadra.

    Perché usi v.studenti ??


    Ho inserito la funzione strcpy, per copiare una stringa nell'altra. Ho usato studenti per indicare il vettore di stringhe.
    ho cambiato delle cose nel programma ma compare questo messaggio di errore: "/home/p19280/.vpl_launcher.sh: line 12: 53362 Segmentation fault (core dumped) ./vpl_execution"
    Questo è il programma diviso in moduli

    const int DIM=20;
    typedef char stringa[DIM];
    
    struct studenti{
    	stringa cogn;
    	int num;
    	float media;
    };
    typedef char stringa[DIM];
    typedef stringa vett[DIM];
    typedef studenti vett_str[DIM];
    
    
    void leggi(const char*, int&, vett_str);
    void trova(vett_str,int,vett,stringa, int&);
    void stampa(vett, int, vett_str);
    
    #include<iostream>
    #include"lib.h"
    using namespace std;
    int main(){
    	vett studenti;
    	int riemp;
    	int riem;
    	char nomefile[]="part.txt";
    	vett_str v;
    	stringa s;
    	
    	
    	leggi(nomefile, riemp, v);
    	trova(v, riemp, studenti, s, riem);
    	stampa(studenti, riemp, v);
    	return 0;
    }
    #include<iostream>
    #include"lib.h"
    #include<fstream>
    #include<cstdlib>
    #include<sstream>
    #include<cstring>
    using namespace std;
    
    void leggi(const char* nomefile, int & riemp, vett_str v){
    	int i;
    	ifstream input;
    	input.open(nomefile);
    	if(input.fail())
    	exit(1);
    	while(!input.eof()){
    	input>>v[i].cogn;
    	input>>v[i].num;
    	input>>v[i].media;
    	i++;
    }
    riemp=i;
    input.close();
    }
    
    void trova(vett_str v, int riemp, vett studenti, stringa s, int& riem){
    	int i,j,k;
    	float media;
    	int somma;
    	for(i=0;i<riemp;i++){
    	somma=somma+v[i].num;
    	k++;
    }media=somma/k;	
    
    
    for(i=0;i<riemp;i++){
    if(v[i].num<media)
    strcpy(v[i].cogn,studenti[riem]);
    
    	
    }
    }
    void stampa(vett studenti, int riemp, vett_str v){
    	int i;
    	for(i=0;i<riemp;i++)
    	cout<<v[i].cogn<<" ";	
    }
  • Re: Programma c++, problema con vettori di stringhe

    Ma che è

    riem

    e quanto vale? Ha sempre lo stesso valore?
  • Re: Programma c++, problema con vettori di stringhe

    oregon ha scritto:


    Ma che è

    riem

    e quanto vale? Ha sempre lo stesso valore?
    ho chiamato il riempimento riem dato che riemp lo avevo già utilizzato per il vettore di strutture
  • Re: Programma c++, problema con vettori di stringhe

    Ma che senso ha? Deve avere un valore iniziale, quale? A che serve? Non cambia mai? Ragiona
  • Re: Programma c++, problema con vettori di stringhe

    oregon ha scritto:


    Ma che senso ha? Deve avere un valore iniziale, quale? A che serve? Non cambia mai? Ragiona

    un valore iniziale uguale a 0 ed incrementarlo ogni qual volta l'if viene rispettato, ho ragionato così.
    ma anche così il messaggio è lo stesso. Ho ragionato male mi sa.
Devi accedere o registrarti per scrivere nel forum
9 risposte