Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

acs20

Programação com arquivos

Recommended Posts

Boa noite pessoal,

 

Então estou programando em c e preciso intercalar 3 arquivos textos, porem estou com uns probleminhas, então o negócio eu tenho 3 arquivos textos onde cadastro neles o código, o nome, a raça e o pais do animal porem os animais em cada um dos 3 arquivos estão ordenados pelo código e então tenho que passa-los para um arquivos principal porem de maneira que eles fiquem ordenados.

 

Então estou fazendo da seguinte maneira, pego um animal de menor código da primeira linha e ai ja passo pro arquivo principal porque os que estão abaixo nos 3 arquivos vão ter código maior que ele e ai caso o animal de menor código não esteja no arquivo 1, verifico se esta no segundo e se não esta verifico se esta no terceiro e a medida que vou descendo no arquivo vou fazendo esse procedimento, porem estou errando num ponto na função intercalar, mas to com dificuldade em consertar, então gostaria de um help, porque eu tenho quase certeza que o erro esta nesse trecho aqui

 

if(cod2<cod3 && !feof(arq2))

{

fprintf(arq, "%i\n", cod2);

fprintf(arq, "%s\n", nome2);

fprintf(arq, "%s\n", raca2);

fprintf(arq, "%s\n", pais2);

fscanf(arq2, "%i\n", &cod2);

fscanf(arq2, "%s\n", nome2);

fscanf(arq2, "%s\n", raca2);

fscanf(arq2, "%s\n", pais2);

}

if(cod3<cod2 && !feof(arq3))

{

fprintf(arq, "%i\n", cod3);

fprintf(arq, "%s\n", nome3);

fprintf(arq, "%s\n", raca3);

fprintf(arq, "%s\n", pais3);

fscanf(arq3, "%i\n", &cod3);

fscanf(arq3, "%s\n", nome3);

fscanf(arq3, "%s\n", raca3);

fscanf(arq3, "%s\n", pais3);

}

 

Porem não to tendo ideia de como consertar.

Segue abaixo o código, quase que completo porque vão perceber que esta faltando, remover, contar porque tem chamadas para essas funções na main e coloquei sem porque as outras funções tão certas.

 

 

 

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

void inserir(FILE* arq1, FILE* arq2, FILE* arq3, int x, int cod, char nome[50], char raca[50], char pais[50])

{

if(x==1)

{

arq1=fopen("animal1.txt" , "at");

fprintf(arq1, "%i\n", cod);

fprintf(arq1, "%s\n", nome);

fprintf(arq1, "%s\n", raca);

fprintf(arq1, "%s\n", pais);

fclose(arq1);

}

if(x==2)

{

arq2=fopen("animal2.txt" , "at");

fprintf(arq2, "%i\n", cod);

fprintf(arq2, "%s\n", nome);

fprintf(arq2, "%s\n", raca);

fprintf(arq2, "%s\n", pais);

fclose(arq2);

}

if(x==3)

{

arq3=fopen("animal3.txt" , "at");

fprintf(arq3, "%i\n", cod);

fprintf(arq3, "%s\n", nome);

fprintf(arq3, "%s\n", raca);

fprintf(arq3, "%s\n", pais);

fclose(arq3);

}

}

void imprimir(FILE* arq, FILE* arq1, FILE* arq2, FILE* arq3, int y)

{

int cod;

char nome[50], raca[50], pais[50];

if(y==0)

{

arq=fopen("animal.txt" , "rt");

while(fscanf(arq, "%d\n", &cod)==1)

{

fscanf(arq, "%s\n", nome);

fscanf(arq, "%s\n", raca);

fscanf(arq, "%s\n", pais);

printf("Codigo: %i\n", cod);

printf("Nome: %s\n", nome);

printf("Raca: %s\n", raca);

printf("Pais: %s\n", pais);

}

fclose(arq);

}

if(y==1)

{

arq1=fopen("animal1.txt" , "rt");

while(fscanf(arq1, "%d\n", &cod)==1)

{

fscanf(arq1, "%s\n", nome);

fscanf(arq1, "%s\n", raca);

fscanf(arq1, "%s\n", pais);

printf("Codigo: %i\n", cod);

printf("Nome: %s\n", nome);

printf("Raca: %s\n", raca);

printf("Pais: %s\n", pais);

}

fclose(arq1);

}

if(y==2)

{

arq2=fopen("animal2.txt" , "rt");

while(fscanf(arq2, "%d\n", &cod)==1)

{

fscanf(arq2, "%s\n", nome);

fscanf(arq2, "%s\n", raca);

fscanf(arq2, "%s\n", pais);

printf("Codigo: %i\n", cod);

printf("Nome: %s\n", nome);

printf("Raca: %s\n", raca);

printf("Pais: %s\n", pais);

}

fclose(arq2);

}

if(y==3)

{

arq3=fopen("animal3.txt" , "rt");

while(fscanf(arq3, "%d\n", &cod)==1)

{

fscanf(arq3, "%s\n", nome);

fscanf(arq3, "%s\n", raca);

fscanf(arq3, "%s\n", pais);

printf("Codigo: %i\n", cod);

printf("Nome: %s\n", nome);

printf("Raca: %s\n", raca);

printf("Pais: %s\n", pais);

}

fclose(arq3);

}

}

void intercalar(FILE* arq, FILE* arq1, FILE* arq2, FILE* arq3)

{

int cod1, cod2, cod3;

char nome1[50], raca1[50], pais1[50], nome2[50], raca2[50], pais2[50], nome3[50], raca3[50], pais3[50];

arq=fopen("animal.txt" , "at");

arq1=fopen("animal1.txt" , "rt");

arq2=fopen("animal2.txt" , "rt");

arq3=fopen("animal3.txt" , "rt");

fscanf(arq1, "%i\n", &cod1);

fscanf(arq1, "%s\n", nome1);

fscanf(arq1, "%s\n", raca1);

fscanf(arq1, "%s\n", pais1);

fscanf(arq2, "%i\n", &cod2);

fscanf(arq2, "%s\n", nome2);

fscanf(arq2, "%s\n", raca2);

fscanf(arq2, "%s\n", pais2);

fscanf(arq3, "%i\n", &cod3);

fscanf(arq3, "%s\n", nome3);

fscanf(arq3, "%s\n", raca3);

fscanf(arq3, "%s\n", pais3);

while(!feof(arq1) || !feof(arq2) || !feof(arq3))

{

if(cod1<cod2 && cod1<cod3 && !feof(arq1))

{

fprintf(arq, "%i\n", cod1);

fprintf(arq, "%s\n", nome1);

fprintf(arq, "%s\n", raca1);

fprintf(arq, "%s\n", pais1);

fscanf(arq1, "%i\n", &cod1);

fscanf(arq1, "%s\n", nome1);

fscanf(arq1, "%s\n", raca1);

fscanf(arq1, "%s\n", pais1);

}

if(cod2<cod1 && cod2<cod3 && !feof(arq2))

{

fprintf(arq, "%i\n", cod2);

fprintf(arq, "%s\n", nome2);

fprintf(arq, "%s\n", raca2);

fprintf(arq, "%s\n", pais2);

fscanf(arq2, "%i\n", &cod2);

fscanf(arq2, "%s\n", nome2);

fscanf(arq2, "%s\n", raca2);

fscanf(arq2, "%s\n", pais2);

}

if(cod3<cod1 && cod3<cod2 && !feof(arq3))

{

fprintf(arq, "%i\n", cod3);

fprintf(arq, "%s\n", nome3);

fprintf(arq, "%s\n", raca3);

fprintf(arq, "%s\n", pais3);

fscanf(arq3, "%i\n", &cod3);

fscanf(arq3, "%s\n", nome3);

fscanf(arq3, "%s\n", raca3);

fscanf(arq3, "%s\n", pais3);

}

if(feof(arq1)!=0)

{

if(cod2<cod3 && !feof(arq2))

{

fprintf(arq, "%i\n", cod2);

fprintf(arq, "%s\n", nome2);

fprintf(arq, "%s\n", raca2);

fprintf(arq, "%s\n", pais2);

fscanf(arq2, "%i\n", &cod2);

fscanf(arq2, "%s\n", nome2);

fscanf(arq2, "%s\n", raca2);

fscanf(arq2, "%s\n", pais2);

}

if(cod3<cod2 && !feof(arq3))

{

fprintf(arq, "%i\n", cod3);

fprintf(arq, "%s\n", nome3);

fprintf(arq, "%s\n", raca3);

fprintf(arq, "%s\n", pais3);

fscanf(arq3, "%i\n", &cod3);

fscanf(arq3, "%s\n", nome3);

fscanf(arq3, "%s\n", raca3);

fscanf(arq3, "%s\n", pais3);

}

}

if(feof(arq2)!=0)

{

if(cod1<cod3 && !feof(arq1))

{

fprintf(arq, "%i\n", cod1);

fprintf(arq, "%s\n", nome1);

fprintf(arq, "%s\n", raca1);

fprintf(arq, "%s\n", pais1);

fscanf(arq1, "%i\n", &cod1);

fscanf(arq1, "%s\n", nome1);

fscanf(arq1, "%s\n", raca1);

fscanf(arq1, "%s\n", pais1);

}

if(cod3<cod1 && !feof(arq3))

{

fprintf(arq, "%i\n", cod3);

fprintf(arq, "%s\n", nome3);

fprintf(arq, "%s\n", raca3);

fprintf(arq, "%s\n", pais3);

fscanf(arq3, "%i\n", &cod3);

fscanf(arq3, "%s\n", nome3);

fscanf(arq3, "%s\n", raca3);

fscanf(arq3, "%s\n", pais3);

}

}

if(feof(arq3)!=0)

{

if(cod1<cod2 && !feof(arq1))

{

fprintf(arq, "%i\n", cod1);

fprintf(arq, "%s\n", nome1);

fprintf(arq, "%s\n", raca1);

fprintf(arq, "%s\n", pais1);

fscanf(arq1, "%i\n", &cod1);

fscanf(arq1, "%s\n", nome1);

fscanf(arq1, "%s\n", raca1);

fscanf(arq1, "%s\n", pais1);

}

if(cod2<cod1 && !feof(arq2))

{

fprintf(arq, "%i\n", cod2);

fprintf(arq, "%s\n", nome2);

fprintf(arq, "%s\n", raca2);

fprintf(arq, "%s\n", pais2);

fscanf(arq2, "%i\n", &cod2);

fscanf(arq2, "%s\n", nome2);

fscanf(arq2, "%s\n", raca2);

fscanf(arq2, "%s\n", pais2);

}

}

if(feof(arq1)!=0 && feof(arq2)!=0)

{

fprintf(arq, "%i\n", cod3);

fprintf(arq, "%s\n", nome3);

fprintf(arq, "%s\n", raca3);

fprintf(arq, "%s\n", pais3);

fscanf(arq3, "%i\n", &cod3);

fscanf(arq3, "%s\n", nome3);

fscanf(arq3, "%s\n", raca3);

fscanf(arq3, "%s\n", pais3);

}

if(feof(arq1)!=0 && feof(arq3)!=0)

{

fprintf(arq, "%i\n", cod2);

fprintf(arq, "%s\n", nome2);

fprintf(arq, "%s\n", raca2);

fprintf(arq, "%s\n", pais2);

fscanf(arq2, "%i\n", &cod2);

fscanf(arq2, "%s\n", nome2);

fscanf(arq2, "%s\n", raca2);

fscanf(arq2, "%s\n", pais2);

}

if(feof(arq2)!=0 && feof(arq3)!=0)

{

fprintf(arq, "%i\n", cod1);

fprintf(arq, "%s\n", nome1);

fprintf(arq, "%s\n", raca1);

fprintf(arq, "%s\n", pais1);

fscanf(arq1, "%i\n", &cod1);

fscanf(arq1, "%s\n", nome1);

fscanf(arq1, "%s\n", raca1);

fscanf(arq1, "%s\n", pais1);

}

}

fclose(arq);

fclose(arq1);

fclose(arq2);

fclose(arq3);

}

int main( )

{

FILE* arq, *arq1, *arq2, *arq3;

int op;

arq=fopen("animal.txt" , "wt");

fclose(arq);

/*arq1=fopen("animal1.txt" , "wt");

fclose(arq1);

arq2=fopen("animal2.txt" , "wt");

fclose(arq2);

arq3=fopen("animal3.txt" , "wt");

fclose(arq3);*/

do

{

printf("Menu De Opcoes");

printf("\n1-Insere um novo animal");

printf("\n2-Imprimi arquivo");

printf("\n3-Conta os animais de um pais");

printf("\n4-Remove um animal");

printf("\n5-Intercalar os arquivos");

printf("\n6-Sair");

printf("\n\nForneca a opcao desejada: ");

scanf("%i", & op);

printf("\n");

switch(op)

{

case 1:

{

int cod, x;

char nome[50], raca[50], pais[50];

printf("Forneca o arquivo a ser inserido o animal: ");

scanf("%i", & x);

printf("\nForneca o codigo do animal: ");

scanf("%i", & cod);

printf("Forneca o nome do animal: ");

scanf("%s", nome);

printf("Forneca a raca do animal: ");

scanf("%s", raca);

printf("Forneca o pais de origem do animal: ");

scanf("%s", pais);

inserir(arq1, arq2, arq3, x, cod, nome, raca, pais);

printf("\n");

}

break;

case 2:

{

int y;

printf("Forneca o arquivo a ser impresso: ");

scanf("%i", & y);

printf("\n");

imprimir(arq, arq1, arq2, arq3, y);

printf("\n");

}

break;

case 3:

{

int cont;

char p[50];

printf("Forneca o nome do pais para contar os animais: ");

scanf("%s", p);

cont=contar(arq, p);

printf("O numero de animais do(a) %s e: %i", p, cont);

printf("\n\n");

}

break;

case 4:

{

int c;

printf("Forneca o codigo do animal a ser removido: ");

scanf("%i", & c);

remover(arq, c);

printf("\n");

}

case 5:

{

intercalar(arq, arq1, arq2, arq3);

printf("\n");

}

break;

case 6:

return 0;

default:

break;

}

}

while(op!=6);

fflush(arq);

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mau, é que coloquei meio na pressa e esqueci da tag code guidjos.

Então estou programando em c e preciso intercalar 3 arquivos textos, porem estou com uns probleminhas, então o negócio eu tenho 3 arquivos textos onde cadastro neles o código, o nome, a raça e o pais do animal porem os animais em cada um dos 3 arquivos estão ordenados pelo código e então tenho que passa-los para um arquivos principal porem de maneira que eles fiquem ordenados.

 

Então estou fazendo da seguinte maneira, pego um animal de menor código da primeira linha e ai ja passo pro arquivo principal porque os que estão abaixo nos 3 arquivos vão ter código maior que ele e ai caso o animal de menor código não esteja no arquivo 1, verifico se esta no segundo e se não esta verifico se esta no terceiro e a medida que vou descendo no arquivo vou fazendo esse procedimento, porem estou errando num ponto na função intercalar, mas to com dificuldade em consertar, então gostaria de um help, porque eu tenho quase certeza que o erro esta nesse trecho aqui

 

if(cod2<cod3 && !feof(arq2))
{
fprintf(arq, "%i\n", cod2);
fprintf(arq, "%s\n", nome2);
fprintf(arq, "%s\n", raca2);
fprintf(arq, "%s\n", pais2);
fscanf(arq2, "%i\n", &cod2);
fscanf(arq2, "%s\n", nome2);
fscanf(arq2, "%s\n", raca2);
fscanf(arq2, "%s\n", pais2);
}
if(cod3<cod2 && !feof(arq3))
{
fprintf(arq, "%i\n", cod3);
fprintf(arq, "%s\n", nome3);
fprintf(arq, "%s\n", raca3);
fprintf(arq, "%s\n", pais3);
fscanf(arq3, "%i\n", &cod3);
fscanf(arq3, "%s\n", nome3);
fscanf(arq3, "%s\n", raca3);
fscanf(arq3, "%s\n", pais3);
}

 

Porem não to tendo ideia de como consertar.

Segue abaixo o código, quase que completo porque vão perceber que esta faltando, remover, contar porque tem chamadas para essas funções na main e coloquei sem porque as outras funções tão certas.

 

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void inserir(FILE* arq1, FILE* arq2, FILE* arq3, int x, int cod, char nome[50], char raca[50], char pais[50])
{
if(x==1)
{
arq1=fopen("animal1.txt" , "at");
fprintf(arq1, "%i\n", cod);
fprintf(arq1, "%s\n", nome);
fprintf(arq1, "%s\n", raca);
fprintf(arq1, "%s\n", pais);
fclose(arq1);
}
if(x==2)
{
arq2=fopen("animal2.txt" , "at");
fprintf(arq2, "%i\n", cod);
fprintf(arq2, "%s\n", nome);
fprintf(arq2, "%s\n", raca);
fprintf(arq2, "%s\n", pais);
fclose(arq2);
}
if(x==3)
{
arq3=fopen("animal3.txt" , "at");
fprintf(arq3, "%i\n", cod);
fprintf(arq3, "%s\n", nome);
fprintf(arq3, "%s\n", raca);
fprintf(arq3, "%s\n", pais);
fclose(arq3);
}
}
void imprimir(FILE* arq, FILE* arq1, FILE* arq2, FILE* arq3, int y)
{
int cod;
char nome[50], raca[50], pais[50];
if(y==0)
{
arq=fopen("animal.txt" , "rt");
while(fscanf(arq, "%d\n", &cod)==1)
{
fscanf(arq, "%s\n", nome);
fscanf(arq, "%s\n", raca);
fscanf(arq, "%s\n", pais);
printf("Codigo: %i\n", cod);
printf("Nome: %s\n", nome);
printf("Raca: %s\n", raca);
printf("Pais: %s\n", pais);
}
fclose(arq);
}
if(y==1)
{
arq1=fopen("animal1.txt" , "rt");
while(fscanf(arq1, "%d\n", &cod)==1)
{
fscanf(arq1, "%s\n", nome);
fscanf(arq1, "%s\n", raca);
fscanf(arq1, "%s\n", pais);
printf("Codigo: %i\n", cod);
printf("Nome: %s\n", nome);
printf("Raca: %s\n", raca);
printf("Pais: %s\n", pais);
}
fclose(arq1);
}
if(y==2)
{
arq2=fopen("animal2.txt" , "rt");
while(fscanf(arq2, "%d\n", &cod)==1)
{
fscanf(arq2, "%s\n", nome);
fscanf(arq2, "%s\n", raca);
fscanf(arq2, "%s\n", pais);
printf("Codigo: %i\n", cod);
printf("Nome: %s\n", nome);
printf("Raca: %s\n", raca);
printf("Pais: %s\n", pais);
}
fclose(arq2);
}
if(y==3)
{
arq3=fopen("animal3.txt" , "rt");
while(fscanf(arq3, "%d\n", &cod)==1)
{
fscanf(arq3, "%s\n", nome);
fscanf(arq3, "%s\n", raca);
fscanf(arq3, "%s\n", pais);
printf("Codigo: %i\n", cod);
printf("Nome: %s\n", nome);
printf("Raca: %s\n", raca);
printf("Pais: %s\n", pais);
}
fclose(arq3);
}
}
void intercalar(FILE* arq, FILE* arq1, FILE* arq2, FILE* arq3)
{
int cod1, cod2, cod3;
char nome1[50], raca1[50], pais1[50], nome2[50], raca2[50], pais2[50], nome3[50], raca3[50], pais3[50];
arq=fopen("animal.txt" , "at");
arq1=fopen("animal1.txt" , "rt");
arq2=fopen("animal2.txt" , "rt");
arq3=fopen("animal3.txt" , "rt");
fscanf(arq1, "%i\n", &cod1);
fscanf(arq1, "%s\n", nome1);
fscanf(arq1, "%s\n", raca1);
fscanf(arq1, "%s\n", pais1);
fscanf(arq2, "%i\n", &cod2);
fscanf(arq2, "%s\n", nome2);
fscanf(arq2, "%s\n", raca2);
fscanf(arq2, "%s\n", pais2);
fscanf(arq3, "%i\n", &cod3);
fscanf(arq3, "%s\n", nome3);
fscanf(arq3, "%s\n", raca3);
fscanf(arq3, "%s\n", pais3);
while(!feof(arq1) || !feof(arq2) || !feof(arq3))
{
if(cod1<cod2 && cod1<cod3 && !feof(arq1))
{
fprintf(arq, "%i\n", cod1);
fprintf(arq, "%s\n", nome1);
fprintf(arq, "%s\n", raca1);
fprintf(arq, "%s\n", pais1);
fscanf(arq1, "%i\n", &cod1);
fscanf(arq1, "%s\n", nome1);
fscanf(arq1, "%s\n", raca1);
fscanf(arq1, "%s\n", pais1);
}
if(cod2<cod1 && cod2<cod3 && !feof(arq2))
{
fprintf(arq, "%i\n", cod2);
fprintf(arq, "%s\n", nome2);
fprintf(arq, "%s\n", raca2);
fprintf(arq, "%s\n", pais2);
fscanf(arq2, "%i\n", &cod2);
fscanf(arq2, "%s\n", nome2);
fscanf(arq2, "%s\n", raca2);
fscanf(arq2, "%s\n", pais2);
}
if(cod3<cod1 && cod3<cod2 && !feof(arq3))
{
fprintf(arq, "%i\n", cod3);
fprintf(arq, "%s\n", nome3);
fprintf(arq, "%s\n", raca3);
fprintf(arq, "%s\n", pais3);
fscanf(arq3, "%i\n", &cod3);
fscanf(arq3, "%s\n", nome3);
fscanf(arq3, "%s\n", raca3);
fscanf(arq3, "%s\n", pais3);
}
if(feof(arq1)!=0)
{
if(cod2<cod3 && !feof(arq2))
{
fprintf(arq, "%i\n", cod2);
fprintf(arq, "%s\n", nome2);
fprintf(arq, "%s\n", raca2);
fprintf(arq, "%s\n", pais2);
fscanf(arq2, "%i\n", &cod2);
fscanf(arq2, "%s\n", nome2);
fscanf(arq2, "%s\n", raca2);
fscanf(arq2, "%s\n", pais2);
}
if(cod3<cod2 && !feof(arq3))
{
fprintf(arq, "%i\n", cod3);
fprintf(arq, "%s\n", nome3);
fprintf(arq, "%s\n", raca3);
fprintf(arq, "%s\n", pais3);
fscanf(arq3, "%i\n", &cod3);
fscanf(arq3, "%s\n", nome3);
fscanf(arq3, "%s\n", raca3);
fscanf(arq3, "%s\n", pais3);
}
}
if(feof(arq2)!=0)
{
if(cod1<cod3 && !feof(arq1))
{
fprintf(arq, "%i\n", cod1);
fprintf(arq, "%s\n", nome1);
fprintf(arq, "%s\n", raca1);
fprintf(arq, "%s\n", pais1);
fscanf(arq1, "%i\n", &cod1);
fscanf(arq1, "%s\n", nome1);
fscanf(arq1, "%s\n", raca1);
fscanf(arq1, "%s\n", pais1);
}
if(cod3<cod1 && !feof(arq3))
{
fprintf(arq, "%i\n", cod3);
fprintf(arq, "%s\n", nome3);
fprintf(arq, "%s\n", raca3);
fprintf(arq, "%s\n", pais3);
fscanf(arq3, "%i\n", &cod3);
fscanf(arq3, "%s\n", nome3);
fscanf(arq3, "%s\n", raca3);
fscanf(arq3, "%s\n", pais3);
}
}
if(feof(arq3)!=0)
{
if(cod1<cod2 && !feof(arq1))
{
fprintf(arq, "%i\n", cod1);
fprintf(arq, "%s\n", nome1);
fprintf(arq, "%s\n", raca1);
fprintf(arq, "%s\n", pais1);
fscanf(arq1, "%i\n", &cod1);
fscanf(arq1, "%s\n", nome1);
fscanf(arq1, "%s\n", raca1);
fscanf(arq1, "%s\n", pais1);
}
if(cod2<cod1 && !feof(arq2))
{
fprintf(arq, "%i\n", cod2);
fprintf(arq, "%s\n", nome2);
fprintf(arq, "%s\n", raca2);
fprintf(arq, "%s\n", pais2);
fscanf(arq2, "%i\n", &cod2);
fscanf(arq2, "%s\n", nome2);
fscanf(arq2, "%s\n", raca2);
fscanf(arq2, "%s\n", pais2);
}
}
if(feof(arq1)!=0 && feof(arq2)!=0)
{
fprintf(arq, "%i\n", cod3);
fprintf(arq, "%s\n", nome3);
fprintf(arq, "%s\n", raca3);
fprintf(arq, "%s\n", pais3);
fscanf(arq3, "%i\n", &cod3);
fscanf(arq3, "%s\n", nome3);
fscanf(arq3, "%s\n", raca3);
fscanf(arq3, "%s\n", pais3);
}
if(feof(arq1)!=0 && feof(arq3)!=0)
{
fprintf(arq, "%i\n", cod2);
fprintf(arq, "%s\n", nome2);
fprintf(arq, "%s\n", raca2);
fprintf(arq, "%s\n", pais2);
fscanf(arq2, "%i\n", &cod2);
fscanf(arq2, "%s\n", nome2);
fscanf(arq2, "%s\n", raca2);
fscanf(arq2, "%s\n", pais2);
}
if(feof(arq2)!=0 && feof(arq3)!=0)
{
fprintf(arq, "%i\n", cod1);
fprintf(arq, "%s\n", nome1);
fprintf(arq, "%s\n", raca1);
fprintf(arq, "%s\n", pais1);
fscanf(arq1, "%i\n", &cod1);
fscanf(arq1, "%s\n", nome1);
fscanf(arq1, "%s\n", raca1);
fscanf(arq1, "%s\n", pais1);
}
}
fclose(arq);
fclose(arq1);
fclose(arq2);
fclose(arq3);
}
int main( )
{
FILE* arq, *arq1, *arq2, *arq3;
int op;
arq=fopen("animal.txt" , "wt");
fclose(arq);
/*arq1=fopen("animal1.txt" , "wt");
fclose(arq1);
arq2=fopen("animal2.txt" , "wt");
fclose(arq2);
arq3=fopen("animal3.txt" , "wt");
fclose(arq3);*/
do
{
printf("Menu De Opcoes");
printf("\n1-Insere um novo animal");
printf("\n2-Imprimi arquivo");
printf("\n3-Conta os animais de um pais");
printf("\n4-Remove um animal");
printf("\n5-Intercalar os arquivos");
printf("\n6-Sair");
printf("\n\nForneca a opcao desejada: ");
scanf("%i", & op);
printf("\n");
switch(op)
{
case 1:
{
int cod, x;
char nome[50], raca[50], pais[50];
printf("Forneca o arquivo a ser inserido o animal: ");
scanf("%i", & x);
printf("\nForneca o codigo do animal: ");
scanf("%i", & cod);
printf("Forneca o nome do animal: ");
scanf("%s", nome);
printf("Forneca a raca do animal: ");
scanf("%s", raca);
printf("Forneca o pais de origem do animal: ");
scanf("%s", pais);
inserir(arq1, arq2, arq3, x, cod, nome, raca, pais);
printf("\n");
}
break;
case 2:
{
int y;
printf("Forneca o arquivo a ser impresso: ");
scanf("%i", & y);
printf("\n");
imprimir(arq, arq1, arq2, arq3, y);
printf("\n");
}
break;
case 3:
{
int cont;
char p[50];
printf("Forneca o nome do pais para contar os animais: ");
scanf("%s", p);
cont=contar(arq, p);
printf("O numero de animais do(a) %s e: %i", p, cont);
printf("\n\n");
}
break;
case 4:
{
int c;
printf("Forneca o codigo do animal a ser removido: ");
scanf("%i", & c);
remover(arq, c);
printf("\n");
}
case 5:
{
intercalar(arq, arq1, arq2, arq3);
printf("\n");
}
break;
case 6:
return 0;
default:
break;
}
}
while(op!=6);
fflush(arq);
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

guidjos era assim como ta acima que você falou pra fazer?, é que sou novo aqui e não conheço muito bem o fórum ainda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.