Ir ao conteúdo
  • Cadastre-se

Tolledo

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Obrigado Mauro! O erro na verdade estava no uso da função fscanf, mas consegui corrigi-lo. Obrigado pela dica do calloc no lugar do malloc, eu nao sabia a diferença entre os dois comandos ^^
  2. Estou começando a digitar um código, porém, a parte inicial dele não está funcionando bem. Resumindo o que eu queria dessa parte inicial: O programa iniciaria e o usuario deve inserir o nome e o formato do arquivo a ser aberto (Nesse caso, uma imagem PPM) Em seguida, seriam lidas as 3 informações iniciais do arquivo "P3 400 300" Onde P3 é o tipo do arquivo e 400 300 é o numero de colunas e linhas Depois disso, com alocação dinamica, seria criada uma matriz para armazenar as 400 colunas e 300 linhas de valores. Por fim, coloquei um printf com a matriz para ver se os valores seriam exibidos corretamente. O problema que, apos verificar que o arquivo possui 400 colunas e 300 linhas, o programa para de responder e é finalizado automaticamente. Vocês poderiam me ajudar a encontrar o erro no codigo? Muito obrigado. O código é o seguinte: #include <stdio.h> #include <stdlib.h> #include <string.h> void Ler_Imagem (int Col, int Lin, int ***v) { int i, j; char nome[50], Tipo[2]; FILE *inFile; printf("Insira o nome da imagem e seu formato:\n"); scanf("%s", &nome); inFile = fopen(nome, "r"); if (inFile == NULL){ printf("Erro ao abrir arquivo.\n"); exit(1); } else { printf("O programa foi aberto com sucesso!\n"); } fscanf(inFile, "%s %d %d", &Tipo, &Col, &Lin); printf("O Numero de linhas e colunas da imagem e: %d colunas e %d linhas\n", Col, Lin); v = (int *) malloc (Lin * sizeof(int *)); for (i=0; i < Lin; i++){ v = (int *) malloc (Col * sizeof(int )); } for (i = 0; i < (Lin + 4); i++) { for (j = 0; j < Col; j++) { if (i >= 4){ fscanf(nome, "%d", &v[(i-4)][j]); } } } for (i = 0; i < (Lin + 4); i++) { for (j = 0; j < Col; j++) { printf("%d", *v[(i)][j]); } } } int main() { int NumCol, NumLin; int **v; NumCol = 0; NumLin = 0; Ler_Imagem(NumCol, NumLin, &v); return 0;

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...