Ciao! Allora io devo creare un programma che legga dal file input un intero n_el tale che 0<n_el<=40.
Dopo di che legge n_el interi in X per strato. In generale quindi dopo questa lettura l'array non sarà completamente definito.
Dopodichè si deve leggere una coppia( carattere, intero) che individua una fetta e poi stampa la fetta richiesta prestando attenzione a stampare solo gli elementi definiti. Infatti si possono avere fette che non contengano alcun valore definito, ed in tal caso bisogna stampare sul file output la frase " fetta vuota"
ecco il mio codice, però praticamente dopo l'inizializzazione dell'array, non va avanti e non mi legge char dal file input.
Il mio IN ad esempio potrebbe essere il seguente:
30
1 2 1 0 0 0 2 2 3 1
0 0 1 1 1 1 1 2 1 0
1 1 0 1 0 0 2 2 2 0
1 2 2 2 2 2 1 1 2 1
H 1
ed io voglio che vengano letti i primi 30 valori e gli altri impostati a 0 ed in seguito stampare le righe H 1. Però il codice si blocca prima..
Qualcuno può aiutarmi a risolverlo?
Grazie mille
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream IN("input.txt");
ofstream OUT("output");
int X[2][4][5];
if ( IN && OUT)
{
int n_el, idx_el=1;
IN>>n_el;
for( int i=0; i<2; i++)
{
for(int j=0; j<4; j++)
{
for(int z=0; z<5; z++)
{
while(idx_el<n_el)
{
IN>> X[i][j][z];
idx_el++;
}
}
}
}
char ch;
int x;
IN>> ch;
cout<<ch;
if(ch=='H')
{ IN>>x;
for(int i=0;i<2;i++)
{
for(int z=0;z<5;z++)
{
while(idx_el<n_el)
{
OUT<<X[i][x][z]<<" ";
idx_el++;
}
}
OUT<<" "<<endl;
}
}
if(ch=='V')
{int y;
IN>>y;
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
OUT<<X[i][j][y]<<" ";
}
OUT<<" "<<endl;
}
}
}
else
cout<<"errore con i files";
IN.close(); OUT.close();
}