Salve io ho il seguente codice:
ed ho il seguente file "MAT.txt" strutturato in questo modo:codice:#include <iostream> #include <fstream> #include <string> using namespace std; /* dichiarazione della lista */ typedef struct nodo{ int value; nodo *link; } lista; /* prototipi delle functions */ void foo(fstream &mat, lista *Lista_new); int main() { fstream mat; mat.open("MAT.txt", fstream::in | fstream::out | fstream::app); lista *Lista_new; Lista_new=NULL; foo(mat, Lista_new); } /* SCOPO: * Estrapolare i valori dal matrice presente nel file e inserire * in una lista i soli elementi di posto pari */ void foo(fstream &mat, lista *Lista_new){ int i=0; int valore; lista *new_node, *temp; string row, col, space; getline(mat, row, ' '); cout<<"Dimensione righe: "<<row<<endl; getline(mat, col, ' '); cout<<"Dimensione colonne: "<<col<<endl; while(!mat.eof() && i<23){ mat>>valore; new_node=new lista; new_node->value=valore; new_node->link=NULL; if(i%2==0){ if(Lista_new==NULL){ Lista_new=new_node; }else{ temp=Lista_new; while(temp->link != NULL) temp=temp->link; temp->link=new_node; } cout<<temp->value<<"->"; } i++; } }
In alto, 4 e 6 indicano rispettivamente righe/colonne, mentre gli altri numeri rappresentano una matrice.codice:4 6 2 3 3 4 5 6 1 7 8 9 5 4 10 12 25 2 4 5 2 5 4 6 9 8
Adesso la mia function deve estrapolare i valori partendo dal 2 fino all'8 prendendo in cosiderazione solo quelli di posto pari. La function sopra riportata funziona benissimo solo che mi dà un unico problema, mi restituisce in output:
Cos'è quel numero iniziale: 427081861???codice:Dimensione righe: 4 Dimensione colonne: 6 427081861->2->3->5->1->8->5->10->25->4->2->4->
Grazie anticipatamente,
gaten

Rispondi quotando