Salve,
stavo curiosando tra le differenze tra la libreria C++ <fstream> e la C <stdio.h> per leggere files binari...in particolare nella spiegazione della fread trovo:
ed avevo trovato un codice in rete che faceva una cosa del genere:size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
ptr -> Pointer to a block of memory with a minimum size of (size*count) bytes.
...
...
...
allora volevo provare a rifare l'esempio ma usando la <fstream>codice:while ( (dwRead=fread(pWAVBuffer,sizeof(SHORT),dwSamples,pFileIn)) >0 ) // dove pWAVBuffer è: // PSHORT pWAVBuffer = NULL; // pWAVBuffer = new SHORT[dwSamples];
naturalmente mi da problemi di cast...come posso forzare la conversione??codice:int main() { PSHORT pBuffer = NULL; pBuffer = new SHORT[20]; std::ifstream inFile; inFile.open( file, std::ios::in|std::ios::binary ); inFile.seekg(0, std::ios::beg); inFile.read(pBuffer, 20); inFile.close(); printf("%s\n", buffer); system("pause"); }
grazie
NB: che senso ha definire un buffer di dati con:
// PSHORT pWAVBuffer = NULL;
// pWAVBuffer = new SHORT[dwSamples];
???



Rispondi quotando