Inquiridor
Pesquisar dados em um arquivo .txt C++

Pergunta
-
Todas as Respostas
-
-
Qual é o código em questão? Poste-o.
#include <iostream>
Assembly, Delphi and C.
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
float valor_cp, valor_cr;
int cod_cp=1, cod_opcao=1, opcao;
string nome_forn, categoria_cp, dtVenc_cp, nome_cl, categoria_cr, dtVenc_cr;
void menu()
{
system("cls");
cout<<"Escolha uma opcao:\n\n"
<<"\t0 - Sair\n"
<<"\t1 - Incluir Contas a pagar\n"
<<"\t2 - Incluir Contas a receber\n"
<<"\t3 - Relatorio contas a pagar\n"
<<"\t4 - Relatorio contas a receber\n"
<<"\t5 - Relatorio Saldo\n"
<<"\t6 - Pesquisar\n\n";
cin>>opcao;
}
void login()
{
int senha;
cout<<"\nInforme a senha:";
cout<<"\nInfome a senha contendo somente NUMEROS!\n";
cin>>senha;
if (senha==1234)
{
menu();
}
else
{
system("cls");
cout<<"\n Senha ou usuario invalido!";
cout<<"\n Tente Novamente:\n\n";
login();
}
system("pause");
}
void cadastro_cp()
{
ofstream cp;
system("cls");
cp.open("c:/COMUM//cp.txt", ios::app); //abre no modo "append" acrescentar no final
if(!cp.is_open()) //Se não abriu o arquivo exibe mensagem de erro e sai
{
cout<<"Erro ao abrir o arquivo\n";
system("pause");
exit(1);
}
cout<<"\nCadastre contas a pagar:\n";
cout<<"Valor: R$";
cin>>valor_cp;
cout<<"\nInforme a data de vencimento: ";
cin>>dtVenc_cp;
cout<<"\nInforme a categoria: (imposto, mensalidade, telefone, luz, etc.) ";
cin>>categoria_cp;
cout<<"\nNome fornecedor: ";
cin.ignore(); //ignora o ultimo \n (salto de linha) digitado acima
getline(cin, nome_forn); //lê uma linha inteira
cp<<"Valor: "<<valor_cp <<endl <<"Data de vencimento: "<<dtVenc_cp <<endl <<"Categoria: "<<categoria_cp <<endl <<"Nome fornecedor: "<<nome_forn <<endl<<endl;
cp.close();
}
void cadastro_cr()
{
ofstream cr;
system("cls");
cr.open("c:/COMUM//cr.txt", ios::app); //abre no modo "append" acrescentar no final
if(!cr.is_open()) //Se não abriu o arquivo exibe mensagem de erro e sai
{
cout<<"Erro ao abrir o arquivo\n";
system("pause");
exit(1);
}
cout<<"\nCadastre contas a receber:\n";
cout<<"Valor: R$";
cin>>valor_cr;
cout<<"\nInforme a data de recebimento: ";
cin>>dtVenc_cr;
cout<<"\nInforme a categoria: (servico, produto, etc.) ";
cin>>categoria_cr;
cout<<"\nNome cliente: ";
cin.ignore(); //ignora o ultimo \n (salto de linha) digitado acima
getline(cin, nome_cl); //lê uma linha inteira
cr<<"Valor: "<<valor_cr <<endl <<"Data de vencimento: "<<dtVenc_cr <<endl <<"Categoria: "<<categoria_cr <<endl <<"Nome cliente: "<<nome_cl <<endl<<endl;
cr.close();
}
void relatorio_cp()
{
ifstream cp("c:/COMUM//cp.txt");
if(!cp.is_open())
{
cout<<"Erro ao abrir o arquivo\n\n";
system("pause");
exit(1);
}
system("cls");
//cout<<"COD"<<"\t" <<"VALOR"<<"\t" <<"DATA"<<"\t" <<"VENC"<<"\t" <<"CATEGORIA"<<"\t" <<"FORNECEDOR"<<"\n";
while(!cp.eof()) //enquanto não for o fim do arquivo de clientes
{
//string cod_cp;
string valor_cp;
string dtVenc_cp;
string categoria_cp;
getline(cp, nome_forn); //obtem o nome (uma linha inteira)
cout<<endl;
cp/*>>cod_cp*/ >>valor_cp >>dtVenc_cp >>categoria_cp;
cp.ignore(); //ignora o \n após
if(cp.good()); //se o dado estiver ok...
{
//cout/*<<left<<setw(30)*/<<cod_cp;
cout/*<<left<<setw(30)*/<<valor_cp;
cout/*<<left<<setw(30)*/<<dtVenc_cp;
cout/*<<left<<setw(30)*/<<categoria_cp;
cout/*<<left<<setw(30)*/<<nome_forn;
}
}
cout<<endl<<endl;
system("pause");
}
void relatorio_cr()
{
ifstream cr("c:/COMUM//cr.txt");
if(!cr.is_open())
{
cout<<"Erro ao abrir o arquivo\n\n";
system("pause");
exit(1);
}
system("cls");
//cout<<"COD"<<"\t" <<"VALOR"<<"\t" <<"DATA"<<"\t" <<"VENC"<<"\t" <<"CATEGORIA"<<"\t" <<"CLIENTE"<<"\n";
while(!cr.eof()) //enquanto não for o fim do arquivo
{
//string cod_cr;
string valor_cr;
string dtVenc_cr;
string categoria_cr;
getline(cr, nome_cl); //obtem o nome (uma linha inteira)
cout<<endl;
cr/*>>cod_cr*/ >>valor_cr >>dtVenc_cr >>categoria_cr;
cr.ignore(); //ignora o \n após
if(cr.good()); //se o dado estiver ok...
{
//cout/*<<left<<setw(30)*/<<cod_cr;
cout/*<<left<<setw(30)*/<<valor_cr;
cout/*<<left<<setw(30)*/<<dtVenc_cr;
cout/*<<left<<setw(30)*/<<categoria_cr;
cout/*<<left<<setw(30)*/<<nome_cl;
}
}
cout<<endl<<endl;
system("pause");
}
void pesquisa()
{
}
void relatorioSaldo()
{
float saldo;
system("cls");
ifstream cp("c:\COMUM\\cp.txt");
ifstream cr ("c:\COMUM\\cr.txt");
if(cp.is_open())
{
cp>>valor_cp;
cp>>nome_forn;
while(cp.eof())
{
cout<<"FORNECEDOR: "<<nome_forn<<endl;
}
}
if(cr.is_open())
{
cr>>valor_cr;
cr>>nome_cl;
while(cr.eof())
{
cout<<"CLIENTE: "<<nome_cl<<endl;
}
}
saldo=valor_cr-valor_cp;
cout<<"SALDO: "<<saldo<<endl;
system("pause");
}
void executarOpcao()
{
switch(opcao)
{
case 0:
{
exit(0);
break;
}
case 1:
{
cadastro_cp();
//exit(0);
break;
}
case 2:
{
cadastro_cr();
//exit(0);
break;
}
case 3:
{
relatorio_cp();
//exit(0);
break;
}
case 4:
{
relatorio_cr();
//exit(0);
break;
}
case 5:
{
relatorioSaldo();
//exit(0);
break;
}
case 6:
{
pesquisa();
break;
}
case 7:
{
exit(0);
break;
}
default:
{
menu();
}
}
}
void main()
{
login();
do
{
menu();
while(opcao<0 || opcao>7)
{
cout<<"OPCAO INVALIDA\n";
system ("pause");
menu();
}
executarOpcao();
}
while(opcao!=0);
system("pause");
} -
-
Vou te dar um exemplo e você pode facilmente adaptar ao seu projeto:
#include <iostream> #include <fstream> using namespace std; int main(int argc, char *argv[]) { char buffer[1024]; ifstream s; s.open("C:\\Users\\xxx\\Documents\\Projects C-C++\\teste.txt"); if(s.is_open()) { while (s.getline(buffer,sizeof(buffer))) cout << buffer << endl; } cout << endl; return 0; }
Assembly, Delphi and C.