Ir para conteúdo
Fórum Script Brasil
  • 0

Copiar um arquivo text linguagem C


Guest --Ana --

Pergunta

Guest --Ana --

:wacko:

Olá pessoal preciso copiar o conteúdo de um arquivo para outro arquivo

Este código está no Livro C completo e total. O Problema é que não entendi o sentido deste (int argc) e argv[1], e argv[2] na função e onde vou colocar os nomes dos arquivos com o conteudo e o que vou guardar o conteúdo.

Preciso de ajuda e rápida, por favor!!!

/* programa que copia arquivo */

#include <stdio.h>

int main(int argc, char *argv[])
  {
    FILE *original,*copia;
    char caracter;

    if(argc < 3)
      {
        printf("\nSintaxe correta:\n\n");
        printf("copiar ARQUIVO_ORIGEM ARQUIVO_DESTINO\n\n");
        exit(1);
      }

    
    while(argv[1])
      {
         if(*argv[1] == *argv[2])
           break;
         printf("\nO nome do arquivo original não pode ser igual ao da\
 cópia.\n\n");
         exit(1);
      };


    if((original = fopen(argv[1],"rb")) == NULL)
      {
        printf("\nErro ao abrir o arquivo original.\n\n");
        exit(1);
      }             

    if((copia = fopen(argv[2],"wb")) == NULL)
      {
        printf("\nErro ao abrir o arquivo cópia.\n\n");
        exit(1);
      }

    while(!feof(original))
      {
        caracter = getc(original);
        if(!feof(original))
          putc(caracter,copia);
      }

    fclose(original);
    fclose(copia);
              
    printf("\n%s copiado com sucesso com o nome de %s.\n\n",argv[1],argv[2]);

    return(0);
  }

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ana, explicando mal e porcamente, esses argumentos do main servem para pegar um valor digitado no prompt ou num console.

A explicação bem feita está aqui:http://www.wesk.org/textos/darkside/3.html

Vá até a parte do "Linha de comando em programas C"

Ele vai te explicar direitinho.

Para fazer funcionar esse programa, salve ele com algum nome, exemplo: cpy

Salve ele na raiz do windows : C:\

Copie para a raiz do windows (C:\) dois arquivos txt´s, exemplo: t1.txt, t2.txt

Vá em iniciar > executar e digite command.

Na linha de comando, vá até a raiz C:\ e execute a função que copia:

C:\> cpy t1.txt t2.txt

O programa cpy vai pegar o primeiro argumento (t1.txt) e vai copiá-lo no segundo argumento (t2.txt)

Não sei se era da época do Ms-Dos, mas é exatamente o que a maioria dos comandos daquela época faziam.

Falei para você usar a raiz do windows, porque fica facil de entender.

Você pode usar uma interface dentro do seu código, pedindo para o usuário digitar o nome do primeiro arquivo e do segundo arquivo através do printf e do scanf, ao invés de fazer dessa forma nerdística.

Abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...