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:
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.
...
...
...
ed avevo trovato un codice in rete che faceva una cosa del genere:
codice:
while ( (dwRead=fread(pWAVBuffer,sizeof(SHORT),dwSamples,pFileIn)) >0 )
// dove pWAVBuffer è:
// PSHORT pWAVBuffer = NULL;
// pWAVBuffer = new SHORT[dwSamples];
allora volevo provare a rifare l'esempio ma usando la <fstream>
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");
}
naturalmente mi da problemi di cast...come posso forzare la conversione??
grazie
NB: che senso ha definire un buffer di dati con:
// PSHORT pWAVBuffer = NULL;
// pWAVBuffer = new SHORT[dwSamples];
???