• 0
Sign in to follow this  
Guest --Ana --

Copiar um arquivo text linguagem C

Question

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);
  }

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this