1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Apontadores em C

Discussão em 'Programação' iniciada por Daniivo, 22 de Junho de 2008. (Respostas: 2; Visualizações: 733)

  1. Daniivo

    Daniivo Banido

    Isto n esta facil chato como tudo, a minha duvida e nos apontadores…
    Tipo quando meto dados na variável n preciso de apontadores e se não tenho qeu meter apontadores em todo o lado certo?????
    Esta porcaria tem me dado erros por todo o lado.
    Andei a fazer este bucado de código mas quando meto apontadores não há maneira…
    Trablhar com esta linguagem e uma porcaria cosia mais aborrecida que isto deve haver poucas escrever escrever para depois ver meia dúzia de letras a passar no DOS
    Vejam la:
    Código:
    #include <stdio.h>
    #include <string.h>
    
    void my_scanf_long(char* s, int n){
    fgets(s, n, stdin);
    s[strlen(s)-1] = '\0';
    }
    
    
    
    typedef struct{
        char nome [20];
        int quantidade;
        int referencia;
    } produto;
    
    typedef struct{
        char nome[20];
        char morada[30];
        int saldo;
    } cliente;
    
    void  loja(cliente *c) {
        produto nomedoproduto;
        printf ("nome do cliente:\n");
        my_scanf_long(nomedoproduto.nome, 20);
        printf("%s", nomedoproduto.nome);
        printf("\n%s, %s, %d", c->nome, c->morada, c->saldo);
    }
    
    int main() {
        cliente c = {"Joao Rodrigues", "Funchal", 200};
        printf("%s, %s, %d", c.nome, c.morada, c.saldo);
        loja(&c);
    return 0;
    }
     
    Última edição: 22 de Junho de 2008
  2. El_UnO

    El_UnO 1st Folding then Sex

    Não percebi bem a tua duvida, se queres preencher campos numa estrutura tens que lhes aceder e atribuir qualquer coisa, nesse teu bocado de código vais imprimir sempre "Joao Rodrigues", "Funchal", 200. Aconselho a usares ponteiros em vez de arrays no meio das estruturas, senão vais ter que copiar as coisas todas de um lado para o outro e é mais chato...

    Fazendo umas alterações (não percebi para que serve aquele produto):

    Código:
    void  loja(cliente *c) {
      char nome[20];
      printf ("nome do cliente:");
      my_scanf_long(nome, 20);
      printf("%s\n", nome);
      strcpy(c->nome, nome);
      printf("%s, %s, %d\n", c->nome, c->morada, c->saldo);
    }
    
    int main() {
      cliente c = {"Joao Rodrigues", "Funchal", 200};
      printf("%s, %s, %d\n", c.nome, c.morada, c.saldo);
      loja(&c);
      return 0;
    }
    
     
  3. Daniivo

    Daniivo Banido

    é isso que eu tenho tentado fazer mas da erros por todo o lado :P ja usas string lol nao tenho muito boas recordações :P, tipo eu estou a tentar fazer um bucado de tudo no mesmo codigo usando apontadores e arrays (como lhe chamas), mas tipo os arrays e facil, mas eu ja ando aqui a umas horas a trabalhar com apontadores mas nao me da nada lol erros atraz de erros...
     
    Última edição: 22 de Junho de 2008

Partilhar esta Página