O professor usou um for pra ler do arquivo mapa.txt e outro para exibir o mapa na tela.
Não funcionaria se ele usasse o printf do segundo for no primeiro? ou seja, sem a necessidade de usar o segundo for.
O professor usou um for pra ler do arquivo mapa.txt e outro para exibir o mapa na tela.
Não funcionaria se ele usasse o printf do segundo for no primeiro? ou seja, sem a necessidade de usar o segundo for.
Olá, Paulo! Tudo bem?
É uma ótima pergunta! Em teoria, sim, você poderia combinar a leitura e a exibição em um único loop for, mas existem algumas considerações a serem feitas.
Quando você está lendo o arquivo e armazenando os dados em uma matriz, como no exemplo do exercício, essa abordagem permite que você manipule os dados posteriormente sem precisar acessar o arquivo novamente. Isso é útil caso você precise fazer mais operações com os dados lidos, como modificações ou cálculos.
Se você decidir imprimir os dados imediatamente após a leitura, sem armazená-los, perderá a flexibilidade de manipular esses dados posteriormente. Além disso, separar a lógica de leitura e exibição em loops distintos pode tornar o código mais claro e fácil de manter, especialmente em projetos maiores.
Por exemplo, se você fizer algo assim:
for(int i = 0; i < 5; i++) {
fscanf(f, "%s", mapa[i]);
printf("%s\n", mapa[i]);
}
Isso funcionaria e exibiria o mapa na tela enquanto lê do arquivo. No entanto, se você precisar usar o mapa novamente em outra parte do programa, precisará ter certeza de que ele foi armazenado corretamente.
Espero ter ajudado e bons estudos!