• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

256mxr

Programa n funciona!!!

5 mensagens neste tópico

Uma empresa de automóveis guarda o seu catálogo de vendas (designação de peças e seu respectivo valor) num ficheiro de texto (as linhas ímpares contêm a designação e as pares o valor das peças). Escreva um programa que faz a leitura desse ficheiro, colocando a informação em dois vectores (um contendo os nomes das peças, e outro com o respectivo valor). O programa deve depois ler do standard input o nome de uma peça, e apresentar no standard output o preço dessa mesma peça.

#include <iostream>
#include <string>
#include <vector>
#include <fstream>

using namespace std;

int main()
{
    vector <string> v1;
    vector <double> v2;
    
    ifstream fich("catalogo.txt");
    if(!fich)
             cerr << "Erro ao abrir ficheiro\n";
    else{
    int i=0,conta=0;double valor;
    string des,peca;
    while(fich)
    {
                    getline(fich,des);
                    v1[i]=des;
                    fich >> valor;
                    v2[i]=valor;
    }
    
    cout << "Designaçao peça: ";
    cin >>peca;
    
    for(vector <string>::iterator it=v1.begin();it!=v1.end();it++)
    {
               conta++;
               if(*it==peca)
                            cout << v2[conta] << endl;
               else
                   if(it==(v1.end()-1))
                                      cerr << "Peça n enconttrada\n";
    }
      
                    
}
    system("pause");
    return 0;
}

Dá segmentation fault!!! N sei ond ta o erro...ajudem por favor..


0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

1. while(fich.goog()), porque while(fich) é sempre verdadeiro desde que o ficheiro tenha sido aberto com sucesso.

2. O i não é incrementado em lado nenhum!

3. Conta está avançado +1 que o i.

4. Variaveis como "des","valor" são desnecessárias.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esse fich.goog() n funciona no dev c++!!!

É preciso incluir alguma coisa??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora