Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Presentiamoci - c++ problemi con seekg
Forum - Presentiamoci - c++ problemi con seekg

Avatar
paco87 (Normal User)
Newbie


Messaggi: 7
Iscritto: 02/11/2011

Segnala al moderatore
Postato alle 9:49
Mercoledì, 02/11/2011
Questo topic è stato chiuso dal moderatore

ciao, sono nuovo del forum, ci sono capitato molte volte e ho trovato molte info interessanti. Ho un problema:devo leggere da un file binario un record che si trova alla posizione tot. Ho provato sia ios::beg sia ios::end, ma nn mi funzionano(sto usando il devc++). La funzione seekg si posiziona sempre sull'ultimo record del file. Mi aiuta qualcuno? Sto impazzendo!! Qui, per esempio voglio leggere la riga 4 dalla fine del file:

#include <iostream>
#include <fstream>

using namespace std;

struct persona
    {
           char cognome[25];
           char nome[25];
           int ID;
           char cell[15];
           int card;
    }dipendente;
int main()
{
    char valore[25];
    int num_record=0;
    ifstream file("dip2.dat", ios::in| ios::binary);
  
   while(file>>dipendente.ID>>dipendente.cognome>>dipendente.nome>>dipendente.cell>>dipendente.card)
           num_record++;
          
       file.clear();  
       long posiz=((num_record-4)*sizeof dipendente);
        file.seekg(posiz, ios::beg);                  
        file.read((char*) &dipendente, sizeof dipendente);
        cout<<"\n  "<<dipendente.ID<<" ";
        cout<<"\t"<<dipendente.cognome<<" ";
        cout<<"\t"<<dipendente.nome<<" ";
        cout<<"\t"<<dipendente.cell<<" "<<endl;      
        file.close();
        system("pause");            
}

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6381
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:05
Mercoledì, 02/11/2011
Come in tutti i forum, nella sezione di presentazione ci si presenta e basta.

I problemi tecnici vanno posti nelle sezioni dedicate (C/C++ in questo caso).


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:13
Mercoledì, 02/11/2011
Questo topic è in violazione di una o più norme del regolamento: http://www.pierotofy.it/pages/extras/forum/9/3839-regolame ... .
    
Dopo averlo letto riapri un nuovo topic assicurandoti di aver rispettato le regole. Grazie per la tua pazienza.


Il mio blog: https://piero.dev
PM