Ir para conteúdo
Fórum Script Brasil

wnove

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre wnove

wnove's Achievements

0

Reputação

  1. wnove

    Ler/Gravar um arquivo.txt

    Fiz esse código para aula de C++ onde faço que você disse que precisa. espero que ajude a expandir suas possibilidades. #include<iostream> #include<fstream> #include<cstdlib> #include<cstdio> #include<conio.h> #define PATH_ARQUIVO "C:\\Aula_Arquivos\\produtos.txt" using namespace std; struct Produto { int Codigo; char Nome[50]; float preço; int Ativo; }; int recuperarOpcao(); void montarMenu(); void cadastrarProduto(); void listarTodos(); void editaProduto(); void contarProdutos(); void excluir(); int main() { int op; do { montarMenu(); op = recuperarOpcao(); switch(op) { case 1: cadastrarProduto(); break; case 2: listarTodos(); break; case 3: editaProduto(); break; case 4: excluir(); break; case 5: contarProdutos(); break; case 6: return 1; break; default: cout << "Opcao invalida."; break; } cout << "\n\nPressione ESC para sair."; } while(getch() != 27); return 1; } int recuperarOpcao() { int opcao; cout << "Digite sua opcao: "; cin >> opcao; cin.ignore(); return opcao; } void montarMenu() { system("CLS"); cout << "..:: Cadastro de Produtos ::.." << "\n\n1 - Cadastrar" << "\n2 - Listar todos" << "\n3 - Editar" << "\n4 - Excluir" << "\n5 - Contar Produtos" << "\n6 - Sair\n\n"; } void contarProdutos() { fstream arq; arq.open(PATH_ARQUIVO, ios::in | ios::app | ios::binary); arq.seekg(0, ios::end); double tamanhoArquivo; tamanhoArquivo = arq.tellg(); int qtdProdutos; qtdProdutos = tamanhoArquivo / sizeof(Produto); system("CLS"); cout << "..:: Contagem de Produtos ::..\n\n"; cout << "Nosso arquivo contem " << qtdProdutos << " produtos."; arq.close(); } void listarTodos() { system("CLS"); cout << "..:: Produtos Cadastrados ::..\n"; fstream arq; arq.open(PATH_ARQUIVO, ios::in | ios::app | ios::binary); arq.seekg(0, ios::beg); Produto prod; while(arq.read((char*)&prod, sizeof(Produto))) { if(prod.Ativo == 1) { cout << "\nCodigo: " << prod.Codigo; cout << "\nNome: " << prod.Nome; cout << "\nPreco: " << prod.preço << "\n"; } } arq.close(); } void cadastrarProduto() { Produto prod; system("CLS"); cout << "..:: Cadastrar um Produto ::.."; cout << "\n\nDigite o codigo: "; cin >> prod.Codigo; cin.ignore(); cout << "Digite o nome: "; gets(prod.Nome); cout << "Digite o preço: "; cin >> prod.preço; cin.ignore(); prod.Ativo = 1; fstream arq; arq.open(PATH_ARQUIVO, ios::out | ios::app | ios::binary); arq.seekp(0, ios::end); arq.write((char*)&prod, sizeof(Produto)); arq.flush(); arq.close(); } void editaProduto() // { system("CLS"); cout << "..:: Editar um Produto ::..\n\n"; // int codEdit, posRegistro = -1, contador = 0; Produto prod; cout << "Digite o codigo a ser editado: "; cin >> codEdit; cin.ignore(); ifstream fin(PATH_ARQUIVO, ios::binary); fin.seekg(0, ios::beg); while(fin.read((char*)&prod, sizeof(Produto))) { if(prod.Codigo == codEdit && prod.Ativo == 1) { cout << "\nProduto a ser editado\n"; cout << "\nCodigo: " << prod.Codigo; //cin >> (prod.Codigo = -1); cout << "\nNome: " << prod.Nome << "\n"; cin >> prod.Nome; cin.ignore(); cout << "\nPreco: " << prod.preço << "\n"; cin >> prod.preço; cin.ignore(); posRegistro = contador; break; } contador++; } fin.close(); if(posRegistro > -1) { char confirma; cout << "\nConfirma a edicao do iten? (s/n): "; cin >> confirma; cin.ignore(); if(confirma == 'S' || confirma == 's') { fstream fout(PATH_ARQUIVO, ios::in | ios::out | ios::binary); fout.seekp(posRegistro * sizeof(Produto), ios::beg); fout.write((char*)&prod, sizeof(Produto)); fout.flush(); fout.close(); } } else { cout << "Produto não localizado."; } // } void excluir() { system("CLS"); cout << "..:: Excluir Produtos ::..\n"; int codExcluir, posRegistro = -1, contador = 0; Produto prod; cout << "\nDigite o codigo a ser excluido: "; cin >> codExcluir; cin.ignore(); ifstream fin(PATH_ARQUIVO, ios::binary); fin.seekg(0, ios::beg); while(fin.read((char*)&prod, sizeof(Produto))) { if(prod.Codigo == codExcluir && prod.Ativo == 1) { cout << "\nProduto a ser excluido\n"; cout << "\nCodigo: " << prod.Codigo; cout << "\nNome: " << prod.Nome; cout << "\nPreco: " << prod.preço << "\n"; posRegistro = contador; break; } contador++; } fin.close(); if(posRegistro > -1) { char confirma; cout << "\nDeseja realmente excluir (s/n): "; cin >> confirma; cin.ignore(); if(confirma == 'S' || confirma == 's') { fstream fout(PATH_ARQUIVO, ios::in | ios::out | ios::binary); prod.Ativo = 0; fout.seekp(posRegistro * sizeof(Produto), ios::beg); fout.write((char*)&prod, sizeof(Produto)); fout.flush(); fout.close(); } } else { cout << "Produto não localizado."; } }
×
×
  • Criar Novo...