Tenho um arquivo txt no qual abri uma matriz com caracteres. Inicialmente r fica distante de p essa é minha posição inicial. Na posição final o r fica no lugar do p sendo assim o p deixa de existir . Ao fazer isso tenho que alterar meu arquivo como fazer isso?
char **m;
int l,c;
struct no {
char **m;
int l,c;
};
using namespace std;
int mapa (){
// declaro variavel file hadle para um txt
ifstream txtFile;
// abrindo o arquivo txt
txtFile.open ("maze50x50.txt");
// le o tamonho da matriz
txtFile >> l >> c ;
// aloco memoria
m = (char **) malloc(l * sizeof(int*));//char
for ( int nl = 0 ; nl<l; nl ++)
{
m[nl] = (char *) malloc(c * sizeof(int));
}
// le os valores do arquivo e preenche
for (int i=0;i<l;i++)
{
for(int j=0;j<c;j++)
{
txtFile >> m[i][j];
}
}
// imprime o valor da matriz na tela
cout << " A matriz lida do arquivo tem tamanho: " << l << " x " << c;
cout << " Conteudo da matriz no arquivo: " << endl;
for(int i=0;i<l;i++)
{
for (int j=0;j<c;j++)
{
cout << m[i][j] << "";
}
cout << endl;
}
cout << endl <<endl;
}
int posinicial(){
for(int i=0;i<l;i++)
{
for (int j=0;j<c;j++){
if (m[i][j] == 'r')
{
printf ("\n Posicao Robo [%i][%i] ", i, j);
printf (" \n");
}
}
}
for(int i=0;i<l;i++)
{
for (int j=0;j<c;j++){
if (m[i][j] == 'p')
{
printf ("\n Posicao final [%i][%i] ", i, j);
}
}
}
}
int posicaofinal (){
cout << " A matriz lida do arquivo tem tamanho: " << l << " x " << c;
cout << " Conteudo da matriz no arquivo: " << endl;
for(int i=0;i<l;i++)
{
for (int j=0;j<c;j++)
{
cout << m[i][j] << "";
}
cout << endl;
}
cout << endl <<endl;
}
int main(void)
{
mapa();
posinicial();
posicaofinal();
}