
Enviado em 05/01/2018 - 12:27h
Boa tarde galera, criei esse code para adicionar produtos em um .txttypedef struct st_produto{
int codigo;
string descricao;
float preco;
} produto;
bool existe(int codigo){ // funcao bool para verificar se o codigo digitado ja existe no banco de dados
int codigo_lido;
FILE *arquivo; // ponteiro do arquivo
arquivo = fopen("/sdcard/produtos.txt", "r");
while(!feof(arquivo)){
fscanf(arquivo, "%i\n", &codigo_lido);
if(codigo_lido == codigo){
fclose(arquivo);
return false;
}else{
fclose(arquivo);
return true;
}
}
fclose(arquivo);
return false;
} // existe
int cadastrar_produto() // função de cadastro de produtos no banco de dados
{
ofstream arquivo; // cria um objeto de fluxo de output
arquivo.open ("produtos.txt", ofstream::app); // abre o arquivo para testar se ele pode ser aberto
if (arquivo.is_open()){ // "se o arquivo estiver aberto, o codigo continua"
int i = 1;
arquivo.close(); // fecha o arquivo, pois inicialmente fora feito apenas um teste
while(i != 0){
arquivo.open ("produtos.txt", ofstream::app); // abre o arquivo para gravar dados nele
system("cls");
cout << "\t\tBem vindo ao sistema de cadastro de produtos da papelaria RCGA\n\n";
produto novo;
/**
No trecho de codigo abaixo grava-se os dado na estrutura
**/
cout << "Codigo: ";
scanf("%i",&novo.codigo);
cin.ignore();
cout << "Descrição: ";
getline(cin, novo.descricao);
cout << "Preço: ";
scanf("%f",&novo.preco);
//cout << "\nCódigo: " << novo.codigo << "\nDescrição: " << novo.descricao << "\nPreço: " << novo.preco << endl;
if(existe(novo.codigo)){ // if para verificar a partir da funcao, se o codigo digitado existe ou nao
arquivo << novo.codigo << " " << novo.descricao << " " << novo.preco << "\n"; // envia os dados agrupados ao arquivo
arquivo.close(); // fecha o arquivo
cout << "\n\t\tProduto cadastrado!\n\nPara sair pressione [0] Continuar [1]" << endl;
cin >> i; // variável que controla o loop
}else{
cout << "\n\t\tO codigo deste produto ja existe!\n\n" << endl;
return 0;
} //if else
}//while
}// if
return 0;
} // cadastrar_produto();