Ordenar arquivo com coordenadas [RESOLVIDO]

1. Ordenar arquivo com coordenadas [RESOLVIDO]

Bruno Martins
bruno548

(usa Outra)

Enviado em 22/05/2014 - 19:13h

Boa noite pessoal!
Estou com o seguinte problema.
Preciso ordenar um arquivo de texto contendo uma lista de coordenadas separadas por "espaço", em cada linha tem uma coordena diferente ex.:
13 22
13 23
13 24
14 17
14 18
14 19
14 20
14 21
14 22
14 23
14 24
14 25
14 26

E gostaria que a saida ficasse algo como:
13 22
13 23
13 24
14 25
14 26
14 17
14 18
14 19
14 20
14 21
14 22
14 23
14 24

E para isso estou usando o seguinte codigo:

#include<stdio.h>
#include <stdlib.h>
#include<conio.h>
#include <windows.h>

int main()
{
FILE *fp1;
int x1;
int y1;
i:
system("cls");
fp1=fopen("D:\\input.txt","r+");
while(fscanf(fp1,"%d %d",&x1,&y1)!=EOF)
{
printf("\n%d %d",x1,y1);
Sleep(10);
procura(x1,y1);
}
fclose(fp1);

system("pause");
goto i;
}

int procura(int x1, int y1)
{
FILE *fp2;
int x2;
int y2;
int cont1=0;
int cont2=0;
fp2=fopen("D:\\novalista.txt","r+");
while(fscanf(fp2,"%d %d",&x2,&y2)!=EOF)
{
cont1++;
if(x2==x1+1 && y2==y1+1)
printf(" - ");

else
{
cont2++;

}
}
fclose(fp2);
if(cont1==cont2)
grava(x1,y1);
}

int grava(int x3, int y3)
{
FILE *fp3;
fp3=fopen("c:\\novalista.txt","a");
fprintf(fp3,"\n%d %d",x3,y3);
fclose(fp3);
}



Mais não está dando certo. Alguém tem uma ideia? Onde estou errando?


  


2. Re: Ordenar arquivo com coordenadas [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 23/05/2014 - 07:10h

Veja os nomes dos arquivos:
fp1=fopen("D:\\input.txt",
fp2=fopen("D:\\novalista.txt",
fp3=fopen("c:\\novalista.txt",

E acredito que aquele goto na função main() vai causar uma "travamento" ...

DICA:
Usar a tag code(sem espaço) para postar códigos:

[ code ] seu código aqui [ / code ]


3. Quase pronto

Bruno Martins
bruno548

(usa Outra)

Enviado em 23/05/2014 - 07:33h

Bom dia meu caro.
Obrigado por sua resposta, não tinha visto o erro dos arquivos, já corrigi e funcionou parcialmente. Agora estou com um erro de logica mesmo, acho que a resposta para o que estou querendo fazer seria o algoritimo do "vizinho mais proximo". Mais o problema principal foi resolvido.


4. Re: Ordenar arquivo com coordenadas [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 23/05/2014 - 10:13h

E só uma dica de uma prática mais indicada:

Sempre verificar se fopen() retorna um ponteiro válido, exemplo:



FILE *fp;

if ( (fp=fopen("NOME_ARQUIVO", "FLAG_TIPO")) != NULL)
{
// faz alguma coisa... bla bla bla
// ...

fclose(fp);
}
else
{
printf ("ERRO: arquivo não abriu\n");
}








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts