Une variable qui prend un peu trop de place ... - C++ - Programmation
Marsh Posté le 04-06-2009 à 07:34:52
Non il ne l'etait pas!
Ca fonctionne parfaitement maintenant, merci beaucoup!
D'ailleurs, quelle est la difference entre l'ouverture binaire/non binaire d'un fichier?
Marsh Posté le 04-06-2009 à 10:04:50
binaire tu y colles les octets directement tel qu'en mémoire
en mode texte, il considére que tu jette du texte et fwrite sur du mode texte je sais mm pas si ça a un comportement défini.
Marsh Posté le 04-06-2009 à 10:56:07
pierrot7777 a écrit : |
personne ne sait vraiment, j'ai l'impression lol
Marsh Posté le 04-06-2009 à 11:09:12
En mode binaire, il n'y a aucune interprétation des caractères de contrôle et autres codes "bizarres".
En mode texte, le système d'exploitation les interprète (donc différence Windows, Linux, MAC...) et si je ne me trompe par exemple un printf("\n" ), sera traduit par CR_LF en Windows et LF simplement en Linux (enfin un truc comme ça).
Enfin, pour ce qui est du fwrite qui est une fonction d'écriture orientée binaire, rien n'est sans doute défini pour l'écriture sur des fichiers ouverts en mode "Texte". Une fois de plus en C, il faut connaître les outils qu'on utilise.
Marsh Posté le 04-06-2009 à 05:38:50
Bonjour,
Je veux realiser un enregistreur WAV, donc prendre l'entree de mon microphone puis ecrire un fichier WAV avec les donnees que j'obtiens.
J'ai un probleme lors de la copie d'une variable. Voici directement le code, les explications suivent:
waveIn est un tableau de shorts a 2 dimensions (short **), qui est rempli par les inputs de mon microphone.
Pour chaque j, on est d'accord, waveIn[currentBuffer][j] devrait etre un short, mais par precaution j'ai employe le cast (short).
La taille du buffer est de 1024 (LEN_BUFFER = 1024)
Toujours est-il que lorsque je regarde la taille de mon fichier pdata, celui-ci fait plus de 2048 octets ...
Alors que si j'effectue la boucle suivante:
donc sans utiliser le tableau waveIn qui semble poser probleme, mon fichier tout beau tout propre fait exactement 2048 octets.
Il semblerait que lorsque je copie waveIn[currentBuffer][j] dans ShortBuffer, la taille de ShortBuffer devient un peu plus grande que celle d'un short classique !
C'est tres derangeant pour ce que je veux faire car le fichier pdata sert par la suite pour l'ecriture d'un fichier WAV, et dans ce fichier, la taille des donnees annoncee dans le header ne correspond pas a la taille reelle de donnee !
Des idees ?
Merci !