• 0
Sign in to follow this  
Inufelipe

Falha De Segmentação File

Question

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

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this