0

原谅我的 C++ 天真。我需要在解析 .OBJ 3D 对象文件时比较两个字符。在每行迭代中,我所做的 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”比较以空字符结尾的字符串,但是,您已将“type”定义为单个字符,而不是 strcmp 所期望的以 x'00' 结尾的字符数组。

一个简单的if (type == 'f')字符比较应该可以得到正确的结果。

于 2012-04-18T04:50:03.700 回答