Salve io ho il seguente codice:
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++;
}
}
ed ho il seguente file "MAT.txt" strutturato in questo modo:
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
In alto, 4 e 6 indicano rispettivamente righe/colonne, mentre gli altri numeri rappresentano una matrice.
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:
codice:
Dimensione righe: 4
Dimensione colonne: 6
427081861->2->3->5->1->8->5->10->25->4->2->4->
Cos'è quel numero iniziale: 427081861???
Grazie anticipatamente,
gaten