1
resposta

Problemas na impressão desta aula

Estou com o seguinte código:

#include <stdio.h>

#include <stdlib.h>

int main(){

int i=0, j = 0; // identador(es)
char mapa[5][10];

FILE* f; // criação de ponteiro para abrir arquivo

f = fopen("mapa.txt", "r");
if(f == 0) {
    printf("Erro na leitura do mapa");
    exit(1);
}

// ler o mapa do arquivo
for(i = 0; i < 5; i++) {
    fscanf(f, "%s", mapa[i]); // dessa maneira conseguimos ler as linhas de uma vez
}    

// imprimir o arquivo
for(i = 0; i < 5; i++) {
    printf("%s\n", mapa[i]);
} 

fclose(f); // fechar o arquivo

system("PAUSE");
return 0;

}

A impressão do programa está dessa maneira:

|--------||...|..-.||..-|.@..||......-.||--------| |...|..-.||..-|.@..||......-.||--------| |..-|.@..||......-.||--------| |......-.||--------| |--------| Pressione qualquer tecla para continuar. . .

mas se eu fizer a impressão com dois comandos for encadeados caractere por caractere funciona bem...

O que eu posso estar fazendo errado?

1 resposta

Acredito que você possa utilizar outra formatação de leitura e impressão, ao invés de usar a formatação '%s' você pode utilizar o '%c', lembrando que o '%s' imprimimos uma string inteira a partir do índice do vetor e o '%c' imprimimos um carácter do índice do vetor indicado.

Espero ter ajudado.