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

URGENTE!!!LINGUAGEM C

Discussão em 'Programação' iniciada por fabiopires1011, 10 de Fevereiro de 2018. (Respostas: 74; Visualizações: 2076)

  1. fabiopires1011

    fabiopires1011 Power Member

    Sim o ficheiro está na pasta. Como é que faço isso da alocação dinâmica?
     
  2. wowmiguelfcp

    wowmiguelfcp Power Member

    Já verificaste se o ficheiro está com o mesmo nome que indicaste no código? Não pode haver diferenças.

    Já aprendeste pointers e alocação dinâmica de memória?
     
  3. fabiopires1011

    fabiopires1011 Power Member

    já mas nao percebi nada de alocação dinamica
     
  4. wowmiguelfcp

    wowmiguelfcp Power Member

    Que erro te dá já agora? Dá erro a compilar, dá erro durante a execução do programa?

    Experimenta fazer fopen("nome_do_ficheiro.csv", "r")
     
  5. fabiopires1011

    fabiopires1011 Power Member

    Não resultou. Como é que faço a alocação dinamica
     
  6. wowmiguelfcp

    wowmiguelfcp Power Member

    Step by step! Não te preocupes com isso porque da maneira que está funciona. Isso é mais um extra.

    Já tentaste fazer debug ao código?
     
  7. fabiopires1011

    fabiopires1011 Power Member

    Mas no enunciado diz que alocaçao dinamica e um requisito minimo
     
  8. wowmiguelfcp

    wowmiguelfcp Power Member

    Eu não vi nada no enunciado que pedisse alocação dinâmica.

    Tu ainda não conseguiste por o inicial a funcionar que é abrir o ficheiro e estás a querer a complicar já??

    Primeiro vê porque razão não abre o ficheiro, vê se tens o ficheiro .csv na mesma pasta do projecto que estás a desenvolver e vê se estás a passar com o nome correcto.

    Isto é um mini projecto, tens de fazer as coisas com calma, uma coisa de cada vez e ir testando. Se queres fazer tudo de uma vez vai dar barraca da grossa.
     
  9. fabiopires1011

    fabiopires1011 Power Member

    passei para a main e ja nao da erro. entao criei uma funçao chamada abrirficheiro so com o codigo para abrir o ficheiro
     
  10. Seeba

    Seeba Power Member

    Boas,

    tens duas maneira de fazeres isso,
    1- quando entra no menu alterar,remover mostras um output com as pessoas existentes do tipo
    1-Pessoa 1
    2-Pessoa 2
    3-Pessoa 3

    Escolhe a pessoa que quer alterar : 1

    Aqui já consegues alterar a pessoa que o utilizador escolher, não te esqueças se ele escolher 1 a primeira pessoa é n-1.

    2- Pedes para introduzir o nome ou um id da pessoa e depois é igual ao exemplo anterior.

    Não sei se era bem isto a tua duvida.
     
  11. fabiopires1011

    fabiopires1011 Power Member

    a minha duvida era mesmo a parte do codigo
     
  12. Seeba

    Seeba Power Member

    Sim, ok parte do código mas mais concretamente o que?
    -não sabes por onde começar?
    -não sabes como aceder ao registo especifico que queres alterar/remover?
    -etc....
     
  13. fabiopires1011

    fabiopires1011 Power Member

    nao sei como começar e nao sei como remover e alterar
     
  14. Seeba

    Seeba Power Member

    Pronto, para o remover e o alterar podes começar por criar uma função como te dei no exemplo 1, depois de saberes qual o valor "n" escolhido pelo utilizador sabes que a posição da Pessoa é [n-1], a não ser que no menu começas pelo valor 0, neste caso a posição é igual ao valor n escolhido.
    Depois é só fazeres prints e sanf's para receber os valores que queres alterar. No caso de remover tens q pedir novamente a pessoa que queres remover e com um for percorres a tua lista de pessoas da posição "n"(indice que queres remover) até ao final da lista.
    ex:
    tens uma lista de 5 pessoas, mostras as 5 pessoas e o utilizador escolhe pessoa 2 a partida sabes que pessoa 2 corresponde ao indice 1 da tua lista, entao pessoas[1]=pessoas[1+1] ou seja pessoas[n]=pessoas[n+1]. Assim consegues remover um elemento da tua lista.
     
  15. fabiopires1011

    fabiopires1011 Power Member

    mas depois disso escolho o que quero remover igualando a "NULL=?
     
  16. Seeba

    Seeba Power Member

    Igualares a null apenas ficas com o registo vazio ou seja vais continuar a ter 5 Pessoas onde uma delas não tem la nada. O que tu tens q fazer é igualares a posição seguinte a tua posição remover como te disse anteriormente n=n+1 ate ao final da lista.
    ex: 1 2 3 4 5 queres apagar 3 se fosse NULL ficava assim 1 2 "" 4 5, com n=n+1 fica assim 1 2 4(=3 valor 4 fica com a posição do 3) e 5=4
    PS: mas para perceberes cria um array simples de int, listas todos, removes o elemento 2 ou 3 com NULL e voltas a listar e vês o resultado.
     
  17. fabiopires1011

    fabiopires1011 Power Member

    mas caso queira voltar a preencher essa posiçao posso?
     
  18. Seeba

    Seeba Power Member

    Essa posição é preenchida com o elemento seguinte da tua lista. Deixares essa posição "NULL" para depois mais tarde preencheres com um registo novo não faz sentido. Numa lista pequena de 10 20 elementos não ha crise, mas imagina que tens uma lista com 9k ou mais registos e estas sempre a remover e inserir novos. Preencheres sempre as posições que "apagas" com os novos registo não faz sentido.
     
  19. fabiopires1011

    fabiopires1011 Power Member

    por exemplo tenho um vetor de estruturas de 5 elementos. apago o 3 registo. 0 4 passa para o 3 e o 5 para o 4. depois ao chamar a funçao para preencher registos, essa informaçao vai ser guardada na 5 posicao?
     
  20. Seeba

    Seeba Power Member

    Sim. Mas experimentar o exemplo que te disse crias um array de 5 elementos e fazes os testes. Vais entender melhor se usares NULL ou se usares n=n-1
     

Partilhar esta Página