faeuk
Power Member
Boa tarde
Estou a fazer um programa de gestão de um armazém de roupa, e uma das funções básicas pretendidas são as inserir e remover produtos.
Cada produto tem várias características e o utilizador, depois de escolher a opção devida no menu, deverá colocar as seguintes no input "Tipo Modelo Cor Tamanho Preço Stock" (estas na classe do artigo) e depois o programa gera um id (fora da classe) e grava-as num ficheiro .txt com o id e as características numa linha.
A função inserir e colocar no ficheiro não tem problema, só que não estou a ver como hei-de fazer para que, lendo o id, apague a linha onde está esse artigo, uma vez que se encontra fora da classe. Estou a aprender c++ e não tenho grandes conhecimentos, já procurei e não consegui nenhuma solução.
Em código tenho isto (parte)
Se alguém me pudesse ajudar a arranjar uma solução para isto, fazendo desta maneira ou encontrando uma melhor, fica desde já o meu agradecimento.
Estou a fazer um programa de gestão de um armazém de roupa, e uma das funções básicas pretendidas são as inserir e remover produtos.
Cada produto tem várias características e o utilizador, depois de escolher a opção devida no menu, deverá colocar as seguintes no input "Tipo Modelo Cor Tamanho Preço Stock" (estas na classe do artigo) e depois o programa gera um id (fora da classe) e grava-as num ficheiro .txt com o id e as características numa linha.
A função inserir e colocar no ficheiro não tem problema, só que não estou a ver como hei-de fazer para que, lendo o id, apague a linha onde está esse artigo, uma vez que se encontra fora da classe. Estou a aprender c++ e não tenho grandes conhecimentos, já procurei e não consegui nenhuma solução.
Em código tenho isto (parte)
Código:
//função de gerar o id
int gerarid(){
int i, a = (1000+rand()%9999);
for(i = 0; i < ID.size(); i++){
if (ID[i] == a) a = gerarid();
}
ID.push_back(a);
return a;
}
//operador da classe artigo
ostream& operator<< (ostream& out, Artigo &a ){
out << a.getTipo() << "\t " << a.getModelo() << "\t " << a.getCor() << "\t " << a.getTamanho() << "\t\t" << a.getPreco() << "\t " << a.getStock() << endl;
}
//função de inserir e gravar novo artigo no txt
void inserirartigo(){
string cor, modelo, tipo;
float preco;
int stock, tamanho;
cout << "Especifique: Tipo Modelo Cor Tamanho Preco Stock\n";
cin >> tipo >> modelo >> cor >> tamanho >> preco >> stock;
Artigo a1(tipo, modelo, cor, tamanho, preco, stock);
ofstream novoartigo ("Artigos.txt", ios::app);
if (novoartigo.is_open()){
novoartigo << " " << gerarid() << "\t " << a1;
novoartigo.close();
cout << "Artigo adicionado com sucesso\n";
}
void removerartigo(){
int id;
string item;
listarartigos();
ofstream novoartigo ("Artigos.txt", ios::app);
cout << "\nInserir ID do item a eliminar da lista\n";
cin >> id;
if (id == gerarid()){
//dúvida a fazer esta parte}
}