A ver si lo he entendido: tienes una entrada, que es la que muestras en el archivo; y quieres generar una salida, que es un array bidimensional de caracteres, de forma que el array contenga en los índices x e y lo mismo que hay en esas coordenadas en el archivo.
Lo que veo es que puedes tener un array:
También te lo puedes hacer dinámico pero eso ya es cosa tuya.
Entonces lo que haces es que lees un carácter del archivo, y si es distinto de un salto de línea lo guardas en el array, en la posición de la fila actual, y en la de la columna anterior más 1. Si es un salto de línea, entonces sumas uno a la fila actual y pones la columna a cero otra vez.
Lo que veo es que puedes tener un array:
Código (cpp) [Seleccionar]
char myArray[MAX_ROWS][MAX_COLUMNS];
También te lo puedes hacer dinámico pero eso ya es cosa tuya.
Entonces lo que haces es que lees un carácter del archivo, y si es distinto de un salto de línea lo guardas en el array, en la posición de la fila actual, y en la de la columna anterior más 1. Si es un salto de línea, entonces sumas uno a la fila actual y pones la columna a cero otra vez.
Código (cpp) [Seleccionar]
size_t row=0, column=0;
std::string s;
while(getline(file, s))
{
size_t i=0;
while(s[i]!='\n')
{
myArray[row][column++] = s[i];
}
row++;
column = 0;
}