PDA

View Full Version : [c++.net]problema con fread


scoti
15-08-2005, 22:13
come posso rislvere questo problema la funzione "fread" mi crea problemi e mi da errori sul compilatore.net
se metto un ciclo for sopra "fread" il compilatore non mi da errori va tutto bene ma non mi da gli effetti desiderati(naturalmente)Sbaglio qualcosa?
grazie. "u" è un CByteArray



FILE *fp;

if((fp=fopen("prova","rb"))==NULL)
{
MessageBox("imposibbile aprire il file");
}

fread(&u,sizeof(CByteArray),1,fp); \*qui è il problema*\

static.Format("Numero %d",u.GetUpperBound());

fclose(fp);

anx721
15-08-2005, 22:48
CByteArray no nlo conosco...è un puntatore? se cosi togli la & prima di u.

Inoltre ti consiglio di usare gli stream del c++ al posto delle funzioni di i/o del C. Qui trovi la reference:

http://www.cplusplus.com/ref/

(clicca su iostream library)

scoti
16-08-2005, 13:16
intanto grazie per la risposta cmq CByteArray non è un puntatore.
sto leggendo il link che mi hai dato.Grazie

scoti
16-08-2005, 14:25
il compilatore mi dice che non trova ifstream anche se ho incluso
#include <iostream>
#include <fstream>
c'e' qualcosa che non va?
o devo inizializzare o includere un'altra cosa ?

anx721
16-08-2005, 17:01
gli include sono giusti. Fammi vedere l'errore preciso del compilatore. forse sbagli a invocare il costruttore..

scoti
16-08-2005, 18:31
C2065: "ifstream": identificatore non dichiarato questo è l'errore che mi da e naturalmente anche alle alla variabile dopo ifstream
per esempio ifstream m_c; non trova neanche m_c
thank

anx721
16-08-2005, 22:20
Hai dichiarato l'uso del namespace std ?

Si fa cosi:

using namespace std;

questa riga va messa dopo gli include e prima delle funzioni, leggendo gli esempi della reference che ti ho dato puoi notare che includono questa direttiva, oppure non mettere quella riga però metti std:: prima di ogni riferimento a tipi della libreria standard del cpp, ad esempio:

std::ifstream m_c;

scoti
17-08-2005, 16:52
grazie finalmente la funzione funge mancava proprio using namespace std;.grazie ancora