[ajuda] C++

_tino_

Power Member
O seguinte programa devia dar para :
introduzir dados e gravar num ficheiro .txt
ler os dados
e fazer pesquiza...
mas depois de introduzir dados, nao consigo ler :S
e depois ao reabrir tb nao consigo inserir...
Código:
#include <iostream>
#include <fstream>
#include<iomanip>
using namespace std;
int inserirdados();
int lerdados();
int procurar();
int sair();
int main ()
{
    int escolha;    
        cout<<"                                             \n";
        cout<<"1)inserir dados              \n";
        cout<<"2)ler dados                  \n";
        cout<<"3)procurar                   \n";
        cout<<"                                       \n";
        cout<<"0)sair                    \n";
        
    cin>>escolha;
    switch (escolha) 
    {
    case 1:
        inserirdados(); 
        break; 
    case 2:
        lerdados();
        break;
    case 3:
        procurar();
        break;
            
    case 0:
        system("exit 1");
    }
        return 0;
}
int inserirdados()
{
    
    char nome[200];
    char mail[200];
    int nota,contacto,n;
    fstream listar ("test.txt", ios::app);
    cout<<"nome\n";
    cin>>nome;
    cout<<"numero\n";
    cin>>n;
    cout<<"nota de bp\n";
    cin>>nota;
    cout<<"mail\n";
    cin>>mail;
    cout<<"contacto\n";
    cin>>contacto;
    listar<<nome<<setw(28);
    listar<<n<<setw(5);
    listar<<nota<<setw(5);
    listar<<mail<<setw(28);
    listar<<contacto<<endl;
    system("pause");
    main();
    return 0;
}
int lerdados()
{
    char nome[200];
    char mail[200];
    int nota,contacto,n;
    ifstream ler("test.txt");
    do
        {
            ler>>nome>>n>>nota>>mail>>contacto;
            cout<<left<<setw(28)<<nome;
            cout<<left<<setw(5)<<n;
            cout<<left<<setw(5)<<nota;
            cout<<left<<setw(28)<<mail;
            cout<<left<<contacto<<endl;
        }while(!ler.eof());
return 0;
}

int procurar()
{
    int num;
    char nome[200];
    char mail[200];
    int nota,contacto,n;
    ifstream ler("test.txt");
    cout<<"numero a pesquisar";
    cin>>num;
        do
        {
            ler>>nome>>n>>nota>>mail>>contacto;
            if(num==n)
            {
            cout<<left<<setw(28)<<nome;
            cout<<left<<setw(5)<<n;
            cout<<left<<setw(5)<<nota;
            cout<<left<<setw(28)<<mail;
            cout<<left<<contacto<<endl;
            }
        }while(!ler.eof());
        return 0;
}





Agradeço ajuda :S
 
Última edição pelo moderador:
Assim à primeira vista falta-te abrir e fechar o ficheiro de forma correcta, algo assim. Criares uma função para o display do menu também não ficava mal, escusavas de chamar o main() de forma recursiva...

Cumps
 
Back
Topo