您现在的位置是:主页 > news > 珠海手机网站制作/广州抖音推广公司

珠海手机网站制作/广州抖音推广公司

admin2025/6/24 3:05:10news

简介珠海手机网站制作,广州抖音推广公司,品牌注册怎么办理,怎么做m开头的网站参考了不少资料,什么WAV头啊之类的,了解结构以后便写了出来。原本这个程序我是用Java实现的,可是没有C快,因而翻译成了C,不幸的是,翻译后各类错误,缘由竟是那可恨的Char。spa#include #include …

珠海手机网站制作,广州抖音推广公司,品牌注册怎么办理,怎么做m开头的网站参考了不少资料,什么WAV头啊之类的,了解结构以后便写了出来。原本这个程序我是用Java实现的,可是没有C快,因而翻译成了C,不幸的是,翻译后各类错误,缘由竟是那可恨的Char。spa#include #include …

参考了不少资料,什么WAV头啊之类的,了解结构以后便写了出来。原本这个程序我是用Java实现的,可是没有C++快,因而翻译成了C++,不幸的是,翻译后各类错误,缘由竟是那可恨的Char。spa

#include

#include

#include

#include

using namespace std;

#define BufferSize 1024

const double PI=acos(-1);

struct WaveHead{

char fileID[4];

int fileLength;

char wavTag[4];

char FmtHdrID[4];

int FmtHdrLeth;

short FormatTag;

short Channels;

int SamplesPerSec;

int AvgBytesPerSec;

short BlockAlign;

short BitsPerSample;

char DataHdrID[4];

int DataHdrLeth;

WaveHead(){

strcpy(fileID,"RIFF");

strcpy(wavTag,"WAVE");

strcpy(FmtHdrID,"fmt ");

strcpy(DataHdrID,"data");

}

}WaveHead;

int main(int argc,char* argv[]){

//[filename] Mainfrequent Changefrequent Len

if(argc!=5){

printf("Parameter Numner Error!\nCommand:[FileName] [MainFrequent] [ChangeFrequent] [WaveLength]");

return 0;

}

char FileName[255];

int MainFrequent,ChangeFrequent,Second;

strcpy(FileName,argv[1]);

strstream c;

c<

c>>MainFrequent;

c.clear();

c<

c>>ChangeFrequent;

c.clear();

c<

c>>Second;

c.clear();

FILE *fp;

if((fp=fopen(FileName,"w"))==NULL){

printf("Error:Cannot Write to File:%s\n",FileName);

return 0;

}

{

WaveHead.FmtHdrLeth=16;//Regular in PCM

WaveHead.FormatTag=1; //Regular in PCM

WaveHead.Channels=2;

WaveHead.SamplesPerSec=44100;

WaveHead.BitsPerSample=8;

WaveHead.AvgBytesPerSec=WaveHead.SamplesPerSec*WaveHead.BitsPerSample*WaveHead.Channels/8;

WaveHead.BlockAlign=(short) (WaveHead.Channels*WaveHead.BitsPerSample/8);

WaveHead.fileLength=WaveHead.Channels*WaveHead.SamplesPerSec*WaveHead.BitsPerSample*Second/8+44;

WaveHead.DataHdrLeth=WaveHead.fileLength-44;

fwrite(&WaveHead,1,sizeof(WaveHead),fp);

int Len=WaveHead.SamplesPerSec*Second;

int Buffer[BufferSize];

int Now=0;

for(int i=0;i!=Len;i++){

if(Now>BufferSize-1){

fwrite(Buffer,sizeof(int),BufferSize,fp);

Now=0;

}

Buffer[Now++]=128+90*sin(2*PI*i/WaveHead.SamplesPerSec*(MainFrequent+ChangeFrequent/2));

Buffer[Now++]=128+90*sin(2*PI*i/WaveHead.SamplesPerSec*(MainFrequent-ChangeFrequent/2));

}

if(Now){

fwrite(Buffer,sizeof(int),Now,fp);

Now=0;

}

}

fclose(fp);

printf("Success:WaveFile has Created in %s\nAuthor:[X.P.Y]",FileName);

return 0;

}