Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
L'euro digitale è una valuta fiat che entrerà in vigore nei prossimi anni. L'obiettivo principale è quello di ridurre la dipendenza dalle piattaforme di pagamento digitali statunitensi e offrire ai cittadini un modo semplice per trasferire denaro. Anche offline, anche in maniera (pseudo)anonima
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-11-2008, 15:36   #1
carminio
Junior Member
 
Iscritto dal: Sep 2006
Messaggi: 6
[C/C++] Problemi con tipo double

Ciao a tutti,
sono un pò di giorni che ormai sbatto la testa per fare una cosa che inizialmente mi sembrava abbastanza semplice, e cioè estrarre la sezione raw-data da un file wav in formato double per poi elaborare il file così ottenuto successivamente. In pratica fare, in ambiente c/c++, quello che banalmente fa il comando wavread di matlab.
Premetto che sono un novellino con c/c++, tuttavia guardando in internet ho trovato un piccolo codice che sembrava fosse adatto per i miei scopi. Il problema è dovuto al fatto che i dati estratti (per quanto io mi sia sforzato di fare dei casting a double) sono sempre restituiti in singola precisione (float). Di seguito allego il codice in questione e una parte dell'output con la speranza che possiate aiutarmi... le ho provate davvero tutte!
Grazie in anticipo

Codice:
------------------------------------BEGIN-----------------------------------------------
// parser.cpp : definisce il punto di ingresso dell'applicazione console.
//

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include <iostream>
#include <limits>
#include <cfloat>
#include <iostream>
#include <iomanip>


using namespace std;


#include "parser.h"

int _tmain(int argc, _TCHAR* argv[])
{
	binaryToAscii();
	return 0;
}

void binaryToAscii()
{
FILE *infile, *outfile;
char prefix[4];
char fileFormat[8];
unsigned char ch;
double byteValue;
unsigned int i;
char ckID[5];
unsigned long nChunkSize;
short int wFormatTag;
short int nChannels;
unsigned long nSamplesPerSecond;
unsigned long nAvgBytesPerSecond;
short int nBlockAlign;
short int nBitsPerSample;

/* Open source for binary read (will fail if file does not exist) */
infile = fopen( "C:\\temp\\parser files\\file1.wav", "rb" );
{
  if (infile==NULL)
  //printf( "The source file %s was not opened!\n");
  exit(2);
}

/* Open output for write */
outfile = fopen("C:\\temp\\parser files\\file1.txt", "w" );
{
  if (outfile==NULL)
  //printf( "The output file %s was not opened\n");
  exit(3);
}

// Read the header bytes. 
fscanf( infile, "%4c", prefix );
fscanf( infile, "%4c", &nChunkSize );
fscanf( infile, "%8c", fileFormat );
fscanf( infile, "%4c", &nChunkSize );
fscanf( infile, "%2c", &wFormatTag );
fscanf( infile, "%2c", &nChannels );
fscanf( infile, "%4c", &nSamplesPerSecond );
fscanf( infile, "%4c", &nAvgBytesPerSecond );
fscanf( infile, "%2c", &nBlockAlign );
fscanf( infile, "%2c", &nBitsPerSample );
fscanf( infile, "%4s", &ckID );
fscanf( infile, "%4c", &nChunkSize );

// Testing on the file format variables would go here.

// Scan and convert the bytes. 
for( i = 0; (i < nChunkSize);i++ ) {
  fscanf( infile, "%c", &ch );
  byteValue = ((double)ch-128)/128;
  fprintf_s(outfile,"%1.16lf\n",byteValue);
}

/* All files are closed: */
fclose(infile);
fclose(outfile);
}

------------------------------------END-----------------------------------------------

OUTPUT RESTITUITO
-0.7031250000000000
-1.0000000000000000
-0.7812500000000000
-1.0000000000000000
-0.8906250000000000
-1.0000000000000000
0.9843750000000000
0.9921875000000000
0.8593750000000000
0.9921875000000000
0.8906250000000000
0.9921875000000000
0.9843750000000000
0.9921875000000000
-0.9531250000000000
-1.0000000000000000
-0.9843750000000000
-1.0000000000000000
-0.9531250000000000
-1.0000000000000000
-0.8906250000000000
-1.0000000000000000
-0.8906250000000000
-1.0000000000000000
-0.8750000000000000
-1.0000000000000000
-0.8281250000000000
-1.0000000000000000
-0.7968750000000000
carminio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Samsung: ufficiale la serie Galaxy Z Fol...
Galaxy Watch Ultra2 e Watch9 ufficiali: ...
Un razzo spaziale Falcon 9 ha lanciato l...
Microlino: dal rischio di fallimento all...
SpaceX, uno stadio di Falcon 9 si schian...
Gli agenti di OpenAI a 10 milioni di ute...
NOW aumenta il prezzo di Premium: rincar...
Le vendite di Steam Deck sono crollate d...
Le bollette rischiano di esplodere per c...
Addio a settimane di test in laboratorio...
NVIDIA Jetson, i nuovi prezzi sono assur...
Windows 11 26H1: tutte le novità in arri...
Apple Upgrade, in arrivo un programma di...
Firefox 153 rilasciato con modifica PDF ...
L'Italia è fra i mercati pi&ugrav...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v