0

私のC++ナイーブを許してください。.OBJ3Dオブジェクトファイルの解析で2つの文字を比較する必要があります。各行の反復で、私が行うstrcmp呼び出しがtrueを返すことはありません。これは、char*とcharの知識がわからないためだと感じています。誰かが私がここで間違っていることを見ますか?

//Variables
char* type = new char[1];

float v1;
float v2;
float v3;

//INSIDE the while loop that parses each line of the file
getline(myfile, line);
sscanf(line.c_str(),"%c %f %f %f", type, &v1, &v2, &v3);
if(strcmp(type,"f") == 0){
    faces++;
}
if(strcmp(type,"v") == 0){
vertices++;
}
4

1 に答える 1

3

"strcmp" は null で終了する文字列を比較しますが、strcmp で期待される x'00' で終了する文字の配列ではなく、単一の文字として "type" を定義しました。

単純なif (type == 'f')char 比較で正しい結果が得られるはずです。

于 2012-04-18T04:50:03.700 に答える