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 :
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);
Questa sono le mie funzioni:
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]<<" ";
}
}
Questo è il mio main:
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