Estou a 2 dias tentando fazer esse código mas nada sai..., alguém me da uma ajuda por favor eu preciso entregar ele amanhã
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#if defined(_WIN32) || defined(__WIN64__) || defined(__CYGWIN__)
#define VIEW "./i_view32"
#elif defined(__linux__)
#define VIEW "eog"
#endif
typedef int *image;
image alloc_memo(int nl, int nc)
{
return (image)malloc(nl * nc * sizeof(int));
}
void write_pbm(image img, char *name, int nl, int nc)
{
FILE *f;
f = fopen ("name.txt", "wt");
if (f == NULL)
{
puts ("Erro ao criar arquivo");
exit (10);
}
// FALTA FAZER
// 1. gravar o numero mágico 'P1' no arquivo
// 2. gravar uma linha de comentário '#...'
// 3. gravar o número de linhas e colunas
// 4. gravar os 0's ou 1's da imagem (no máximo 100 valores por linha)
fclose(f);
}
image read_pts(char *name, int *nl, int *nc)
{
FILE *f;
image img = NULL;
f = fopen ("name.txt", "r");
// FALTA FAZER
// 1. ler o número de linhas e colunas
// 2. ler o número 'n' de pontos
// 3. alocar o vetor 'img' com nl x nc elementos
// 4. preencher o vetor imagem com zeros
// 5. ler as 'n' coordenadas (i, j) e preencher a posição correspondente de img com 1.
fclose(f);
return img;
}
int main(int argc, char *argv[])
{
image in;
char *p;
char nameIn[40];
char nameOut[40];
char command[100];
int nl, nc;
if (argc < 2)
{
printf("Uso: %s <imagem[.pts]>\n\n", argv[0]);
return 1;
}
if (p = strstr(argv[1], ".pts"))
*p = 0;
strcpy(nameIn, argv[1]);
strcat(nameIn, ".pts");
strcpy(nameOut, argv[1]);
strcat(nameOut, ".pbm");
// transformação
in = read_pts(nameIn, &nl, &nc);
write_pbm(in, nameOut, nl, nc);
sprintf(command, "%s %s &", VIEW, nameOut);
system(command);
free(in);
return 0;
}