Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

ZNez

Dúvida em Ficheiros

Mensagens Recomendadas

ZNez    0
ZNez

Boas,

Estou a ler o livro "Linguagem C" do Luis Damas, quando me deparei com uma dúvida na seccção dos ficheiros.

Na página 352 (para quem tenha o livro tem um exercício para copiar o conteudo de um ficheiro para outro. Eu percebi como isso funciona e sei implementar, não estou é a percebe o argumento do tipo int que a função recebe.

main(int argc, char *argv[])
{
    FILE *fp;
    int ch;
    
    if (argc!=2)
    {
        printf("Sintaxe: \n\n%s Ficheiro\n\n",argv[0]);
        exit(1);
    }
    fp = fopen(argv[1],"r");
    
    if (fp == NULL)
    {
        printf("impossivel abrir o ficheiro %s\n",argv[1]);
        exit(2);
    }
    
    while ((ch=fgetc(fp)!=EOF))
        putchar(ch);
    fclose(fp);
}

Qualquer ajuda... desde já obrigado :P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ZNez    0
ZNez

Podes dar algum exemplo de uma situação? Número de argumentos? Posso estar a fazer grande confusão, mas o único argumento que quero é o nome do ficheiro mais a extensão, não?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nata79    0
nata79

se for relativo ao argc tens um bom exemplo no teu programa, quando fazes if(argc != 2). o argc é o número de argumentos passados ao programa + 1 (a chamada ao programa também conta), neste caso o programa termina se o argc for diferente de dois, ou seja, se o programa recebeu mais ou menos que um argumento que aqui deverá ser o nome do ficheiro a duplicar.

espero ter ajudado alguma coisa...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ZNez    0
ZNez

sendo assim, neste programa o argc não deveria ser 3? ou nao estamos a contar com o argc como sendo argumento?

prog (gcc) + argc + argv

ou apenas

prog (gcc) + argv?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

O argc não é argumento nenhum, é apenas um parâmetro que permite saber internamente quantos argumentos é que o programa principal recebeu.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade