printfが動作しなくても、このコードで何が問題になりますか?バッファがフラッシュされる前に、あなたのプログラムがクラッシュしているので、おそらく表示されないのは、S()が正常にこのコードで何が問題になっていますか? printfが印刷されていません
#include <speex/speex.h>
#include <stdio.h>
#include <stdlib.h>
/*The frame size in hardcoded for this sample code but it doesn't have to be*/
#define FRAME_SIZE 160
int main()
{
printf("decoding");
char *outFile;
FILE *fout, *fs;
short out[FRAME_SIZE];
float output[FRAME_SIZE];
char cbits[200];
int nbBytes;
void *state;
SpeexBits bits;
int i, tmp;
fout = fopen("test_40khz_mono_Q5.spx", "rb");
if(fout == NULL){
printf("******Error*******");
}
else{
printf("*******Okay********");
}
fs = fopen("pcmfile","wb");
if(fs == NULL){
printf("****Error pcm creation****");
}
else{
printf("*****pcm File created*****");
}
state = speex_decoder_init(&speex_nb_mode);
tmp=1;
speex_decoder_ctl(state, SPEEX_SET_ENH, &tmp);
speex_bits_init(&bits);
while (!(feof(fout)))
{
fread(&nbBytes, sizeof(int), 1, fout);
fread(cbits, 1, nbBytes, fout); //Problem area
speex_bits_read_from(&bits, cbits, nbBytes);
speex_decode(state, &bits, output);
for (i=0;i<FRAME_SIZE;i++)
out[i]=output[i];
fwrite(out, sizeof(short), FRAME_SIZE, fs);
}
speex_decoder_destroy(state);
speex_bits_destroy(&bits);
fclose(fout);
fclose(fs);
return 0;
}
3つのprintfがあります。本当の質問をしてください。問題の原因とならない亀裂をすべて取り除いて、サンプルをきれいにしてください。最小の部分は残しておいてください。もっと見ることに興味があります。 –
これらの診断用の 'printf'にいくつかの改行を追加します - おそらく正常に呼び出されていますが、バッファがいっぱいになるか、fflushを呼び出すか改行を出力して、 – tobyodavies
プログラムはどのように動作するのですか?それはクラッシュしますか?はいの場合は、エラーメッセージは何ですか?出力を書き込まずに正常に実行できますか? – Codo