Jump to content
David Fernandes

Eliminar texto de um ficheiro (dúvida)

Recommended Posts

David Fernandes

Boa tarde.

Encontro-me a realizar um trabalho para a faculdade em que consiste no desenvolvimento de um sistema de controlo de um supermercado. A linguagem utilizada é C.

Acontece que uma (das várias) funcionalidades pretendidas com este trabalho, é a remoção de um produto x de um ficheiro. E após compilar e executar o programa obtenho o seguinte erro: "Falha de segmentação". 

Muito obrigado a quem poder ajudar.

DF

void del_prod(produto prod[], int a) { //função para eliminar um produto
  FILE *fx;
  FILE *ft;
  fx=fopen(FX,"r");
  ft=fopen(FT,"w");
  int i, comp;
  char temp[50], x[50], s[50];
  printf("Indique o código do produto que quer eliminar: \n");
  scanf("%s", s);
  while((fgets(temp, 51, fx))!=NULL) {
    for(i=0; temp[i]!=";"; i++) {
      x[i]=temp[i];
    }
    comp=strcmp(x,s);
    if(comp!=0) {
      fputs(temp, ft);
    }
    x[0] = '\0';
  }
  fclose(fx);
  fclose(ft);
  remove("supermercado.txt");
  rename("temporario.txt", "supermercado.txt");
}

 

Share this post


Link to post
Share on other sites
HappyHippyHippo

existem várias coisas ai que poderia apontar, mas vou deixar para tu descubrires ... agor ano que toca ao problema descrito, faz este teste:

depois de "escreveres" no array "x", faz um print da string e vê o que aparece

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
David Fernandes
28 minutos atrás, HappyHippyHippo disse:

existem várias coisas ai que poderia apontar, mas vou deixar para tu descubrires ... agor ano que toca ao problema descrito, faz este teste:

depois de "escreveres" no array "x", faz um print da string e vê o que aparece

Já consegui tratar desse problema. Obrigado por a disponibilidade.

Estou agora é retido na "modificação do produto". Ou seja, na edição de uma porção do ficheiro.

Share this post


Link to post
Share on other sites
David Fernandes
4 minutos atrás, HappyHippyHippo disse:

e qual é a dúvida ?

Ora bem.

Após os produtos serem adicionados no ficheiro ficará alguma coisa do género: "222;batatas;8;3;5" (Isto claro foi um exemplo) cada valor corresponde: código do produto, descrição, quantidade, custo de compra (unidade) e preço de venda (unidade) respetivamente.

A função para modificar o produto deve pedir ao utilizador o código do produto e imediatamente a seguir ser possível alterar os últimos 3 dados.

Segue-se o meu código(incompleto):

void mod_produto(produto prod[], int a) { //função para alterar um produto no stock  
  FILE *fx;
  fx=fopen(FX,"a+"); 
  int i, comp, cont=0, pos;
  char s[50], temp[100], x[50];
  printf("Indique  o código do produto que quer alterar: \n");
  scanf("%s", s);
  //DÚVIDA
  printf("Nova Quantidade: \n");
  scanf();
  printf("Novo Custo de compra (unidade): \n");
  scanf();
  printf("Novo Preço de venda (unidade): \n");
  scanf();
}
}
}
fclose(fx);
}

Obrigado. 

Share this post


Link to post
Share on other sites
HappyHippyHippo

não vi um único ponto de interrogação neste post ? existe alguma dúvida ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
David Fernandes
2 minutos atrás, HappyHippyHippo disse:

não vi um único ponto de interrogação neste post ? existe alguma dúvida ?

A dúvida é em editar um ficheiro...Não consigo ser mais claro que isto...

Share this post


Link to post
Share on other sites
HappyHippyHippo

fizeste ler e apagar, nao estou a ver a duvida... mesmo sabendo que a maneira que apresentaste anteriormente tem problemas, ao editar pode ser resolvida da mesma maneira

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.