Ir para conteúdo
Fórum Script Brasil
  • 0

Falha De Segmentação File


Inufelipe

Pergunta

Ola galera do Script Brasil Forum.

Eu estou com um problema em C++.

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <curses.h>

struct prod
{
 char nome[25];
 float price;
 char barcode[15];
};

int main()
{
 char barcode[15];
 int i;
 float ul;
 float gasto = 0;
 FILE *f;
 float cache;
 prod prods[10] = {{"maizena",1.75,"7894000010014"},{"cha capim cidrera",0.65,"7896277200327"},{"azeite molinos",3.55,"7897633200340"},{"last",0.,"0"}};
 f = fopen("cache.txt","r");
 fscanf(f,"%f",cache);
 fclose(f);
 initscr();
 start_color();
 init_pair(1,COLOR_WHITE,COLOR_BLUE);
 bkgd(COLOR_PAIR(1));
 attron(COLOR_PAIR(1));
 move(3,3);
 printw("Comandos especiais:\n\n0 - Fechar nota\n66 - Sair do progama.");
 getch();
while(1)
{
gasto = 0;
while(1)
{
 clear();
 move(0,60);
 printw("Super Mercado v:1.0");
 move(23,0);
 printw("Total : %f",gasto);
 move(23,50);
 printw("Cache : %f",cache);
 move(0,0);
 printw("Codigo do produto:");
 scanw("%s",&barcode);
 move(3,0);
if (!strcmp(barcode,"0")){
 break;
}
if (!strcmp(barcode,"66")){
 endwin();
 exit(0);
}
for (i = 0;i<10;i++)
{
 if(!strcmp(prods[i].nome,"last"))
{
 break;
}
 if(!strcmp(barcode,prods[i].barcode))
{
 gasto += prods[i].price;
 printw("%s - %f\n",prods[i].nome,prods[i].price);
 getch();
}
}
 move(23,0);
 printw("Total : %f",gasto);
}
 move(10,20);
 printw("Gasto total do cliente: %f",gasto);
 getch();
 cache += gasto;
 f = fopen("cache.txt","w");
 fprintf(f,"%f",cache);
 fclose(f);
}
endwin();
}

ele resulta uma falha de segmentação.

alguém pode me ajudar ?

falou

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Uma coisa que pode estar dando SegFault é que voce não esta verificando se o fopen esta realmente abrindo o arquivo. Quando ele falha, devolve NULL. E quando você da um fopen ("nome_arquivo", "r"), se o arquivo não existir, ele com certeza falha.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...