Salve ho un problema devo prendere da file un vettore di numeri interi, allocarlo dinamicamente, eliminare dal mio vettore i numeri uguali a 0 poi selezionare i numeri dispari e quelli pari e inserirli in due file diversi, uno per i pari uno per i dispari. Successivamente conteggiare quanti numeri sono dispari e quanti sono pari e quanti zeri e quale dei due array abbia un maggior numero di elementi e quale quello minore
Però in tutto questo ho un problema con la stampa del mio array allocato dinamicamente preso da file non capisco perchè non mi stampi nulla.
Questo è il mio file:
0
3
15
0
0
7
8
0
9
0
11
44
21
0
0
0
0
0
0
0
Questa è la mia libreria :
Questa sono le mie funzioni:codice:#include <iostream> #include <cstdlib> #include <fstream> #define n 50 using namespace std; typedef char Stringa [n]; void carica_file(Stringa N, fstream &f, int *); void carica_vettore(Stringa nome, fstream &, int *, const int); void stampa(int *, const int);
Questo è il mio main:codice:#include "numeri.h" void carica_file(Stringa nome, fstream &f, int *size){ int dim=0; int vet[dim]; cout<<"Inserisci nome del file da caricare: "; cin.getline(nome, n-1, '\n'); f.open(nome, ios::in); if(!f){ cout<<"Eroore in fase di apertura del file \n"; exit(1); }else{ while(!f.eof()){ f>>vet[dim]; dim++; } *size=dim; } } void carica_vettore(Stringa nome, fstream &f, int *vet, const int d){ for(int i=0; i<d; i++){ f>>vet[i]; } } void stampa(int *v, const int dimensione){ cout<<"\n Stampo il vettore: \n"; for(int i=0; i<dimensione; i++){ cout<<v[i]<<" "; } }
codice:#include "numeri.h" int main(){ Stringa nome_file; fstream file; int dim; carica_file(nome_file, file, &dim); int *vettore= new int[dim]; carica_vettore(nome_file, file, vettore, dim); stampa(vettore, dim); }
Questo è quello che mi stampa la linetta non si arresta mai e non mi stampa niente.
3.png

Rispondi quotando
