Tengo un problema, estoy haciendo una clase llamada sopa, y quiero crear una función que lea automáticamente una tipo de dato Sopa, que consiste en número de filas otro de columnas y y una matriz de char del tamaño filas * columnas.Se que puedo hacer esto sobrecargando el operator>> , pero lo quiero hacer desde una función. El problema que tengo es que leo bien la matriz, pero el problema es como si en el buffer hay más caracteres para leer, porque después tengo varias lecturas en el programa y no para, osea que mete automaticamente basura en las variables que utilizo. La función es esta:
void Sopa::LeerSopa(){
std::cin>>filas;std::cin>>columnas;
c=new unsigned char*[filas];
for(unsigned int i=0;i<filas;i++)
c[i]=new unsigned char[columnas];
for(unsigned int i=0;i<filas;++i)
for(unsigned int j=0;j<columnas;++j)
std::cin>>c[i][j];
}
La representación interna de la clase es:
unsigned char **c;
unsigned int filas,columnas;
Y el tipo de dato que le introduzco es:
8 20
ijodfafksewlitdecima
adnugesapoiterceralo
cqdfloipmcvbdeiravep
ugualoperitimalatapa
aloitcuniptratelitap
ratonxunipapalemacat
tolietecunifelateoap
alinltascanrasanevon
Decir que lo ejecuto con un re-direccionamiento, osea : "./bin/sopa < datos_sopa.txt " (datos sopa es esto último que he puesto"
Un saludo