Kolke Postado Junho 12, 2008 Denunciar Share Postado Junho 12, 2008 (editado) Oi pessoal, alguém pode me ajudar aí?Escreva um programa para gravar de maneira intercalada em um arquivo de saída as linhas de texto presentes em dois arquivos de entrada. Os nomes dos três arquivos devem ser obtidos através da entrada padrão. O comportamento do programa é ilustrado abaixo:entrada1.txt ABentrada2.txt DEC saida.txtADBEC Consegui fazer até aqui.#include<stdio.h> #include<stdlib.h> int main(void) { FILE*e; FILE*e1; FILE*s; char x[30]; char y[30]; int i=0,j=0,cont1=0,cont2=0; e=fopen("entrada.txt","wt"); if(e==NULL) { printf("não possivel abrir"); system("pause"); return 1; } while(fgets(x,30,e)!=NULL) { cont1++; } e1=fopen("dado.txt","wt"); if(e1==NULL) { printf("não possivel abrir"); system("pause"); return 1; } while(fgets(x,30,e1)!=NULL) { cont2++; } printf("%d %d",e,e1); s=fopen("saida.txt","wt"); if(s==NULL) { printf("não foi possivel abrir o arquivo"); system("pause"); return 1; } if(cont1>cont2) { for(i=0;i<cont1;i++) { if(i<cont2) { fscanf(e,"%s",x); fprintf(s,"%s",x); fscanf(e1,"%s",x); fprintf(s,"%s",x); } else { fscanf(e,"%s",x); fprintf(s,"%s",x); } } } else { for(i=0;i<cont2;i++) { if(i<cont1) { fscanf(e,"%s",x); fprintf(s,"%s",x); fscanf(e1,"%s",x); fprintf(s,"%s",x); } else { fscanf(e,"%s",x); fprintf(s,"%s",x); } } } while(fscanf(s,"%s",x)!=EOF); { printf("%s",x); } fclose(s); return 0; system("pause"); } Editado Junho 13, 2008 por Kolke Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Junho 13, 2008 Denunciar Share Postado Junho 13, 2008 Alguns comentários:1) Coloque o código entre as tags [ code ] e [ /code ] ! Fica muito mais fácil para ver... :)2) Abra todos os arquivos de uma vez pois, caso algum falhe, você não precisa perder tempo executando algo que será descartado.3) Sempre que a abertura de um arquivo falha e você encerra o programa, feche os arquivos que haviam sido abertos com sucesso.4) Já que as gravações têm que ser feitas intercaladas, faça o mesmo com as leituras! Ou seja: leia o primeiro arquivo, grave no destino, leia o segundo, grave no destino, reinicie até que ambas origens retornem EOF. O programa ficará bem mais simples desta forma. :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dobrowolsky Postado Junho 13, 2008 Denunciar Share Postado Junho 13, 2008 Alguns comentários:1) Coloque o código entre as tags [ code ]e [ /code ] ! Fica muito mais fácil para ver... 2) Abra todos os arquivos de uma vez pois, caso algum falhe, você não precisa perder tempo executando algo que será descartado.3) Sempre que a abertura de um arquivo falha e você encerra o programa, feche os arquivos que haviam sido abertos com sucesso.4) Já que as gravações têm que ser feitas intercaladas, faça o mesmo com as leituras! Ou seja: leia o primeiro arquivo, grave no destino, leia o segundo, grave no destino, reinicie até que ambas origens retornem EOF. O programa ficará bem mais simples desta forma.5) Fomata seu codigo tambem pra ficar mais facil o entendimento. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kolke Postado Junho 14, 2008 Autor Denunciar Share Postado Junho 14, 2008 Esse fórum tem moderador não? que possa me ajudar! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KaKarotto Postado Junho 14, 2008 Denunciar Share Postado Junho 14, 2008 Aqui, neste fórum, quem ajuda são os membros. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Junho 14, 2008 Denunciar Share Postado Junho 14, 2008 Vamos lá: você quer saber se algum moderador nnão vai te ajudar. Mas e o que os membros dizem, não importa?Eu dei algumas dicas sobre o que você podia fazer para melhorar o código e falei como você tem que fazer o programa. Você nem falou nada sobre isso!Você fez as mudanças que eu falei? Coloque o código aí que vamos fazendo juntos! Fazer tudo para você também não dá, né? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Kolke
Oi pessoal, alguém pode me ajudar aí?
Escreva um programa para gravar de maneira intercalada em um arquivo de saída as
linhas de texto presentes em dois arquivos de entrada. Os nomes dos três arquivos devem
ser obtidos através da entrada padrão. O comportamento do programa é ilustrado abaixo:
entrada1.txt
A
B
entrada2.txt
D
E
C
saida.txt
A
D
B
E
C
Consegui fazer até aqui.
Editado por KolkeLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.