指定文字列の読み込み
Posted: 2011年8月15日(月) 09:46
初心者です
test.txtを一行ずつ読み込んで
BPM:という表記があったらその次の数字を読み込み
#STARTがあったらstage.startflagに1を代入し、
#ENDがあったらstage.startflagに0を代入するようなことをしたいのですが
その部分の条件がうまく分岐してくれません><
どうすればよいのでしょうか?
説明下手ですみません。
test.txt
test.txtを一行ずつ読み込んで
BPM:という表記があったらその次の数字を読み込み
#STARTがあったらstage.startflagに1を代入し、
#ENDがあったらstage.startflagに0を代入するようなことをしたいのですが
その部分の条件がうまく分岐してくれません><
どうすればよいのでしょうか?
説明下手ですみません。
test.txt
void load_humen(){
int i=0,cnt=0,cnt2=0;
int c;
FILE *fp;
char buf[1024];
fp=fopen("dat/humen/test.txt","r");
if(fp==NULL)return;
while(fgets( buf, 1023, fp ) != NULL){
if((strstr(buf,"BPM:"))!=NULL){//問題:ここがNULL以外にならない
sscanf_s(buf,"BPM:%d",&stage.bpm);
stage.bpm=204;
}
if(strstr(buf,"#START")!=NULL){//ここも
stage.startflag=1;
}
if(strstr(buf,"#END")!=NULL){//ここも
stage.startflag=0;
}
while((c=fgetc(fp))!=EOF){
if(stage.startflag==1){
if(c=='1'){
humen[i].flag=1;
humen[i].cnt=cnt;
humen[i].knd=1;
i++;
}
if(c=='2'){
humen[i].flag=1;
humen[i].cnt=cnt;
humen[i].knd=2;
i++;
}
if(c=='3'){
humen[i].flag=1;
humen[i].cnt=cnt;
humen[i].knd=3;
i++;
}
if(c=='4'){
humen[i].flag=1;
humen[i].cnt=cnt;
humen[i].knd=4;
i++;
}
if(c==','){
//imax++;
break;
}
cnt++;
}
}
cnt2++;
}
fclose(fp);
}