比较C ++ char *字符以解析.OBJ文件

时间:2012-04-18 04:43:28

标签: c++ string char .obj

原谅我的C ++天真。我需要在解析.OBJ 3D对象文件时比较两个字符。在每一行迭代中,我所做的strcmp调用永远不会返回true。我有一种感觉,这是因为我不知道我的char * vs 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++;
}

1 个答案:

答案 0 :(得分:3)

“strcmp”比较空终止字符串,但是,您已将“type”定义为单个字符,而不是strcmp所期望的以x'00'结尾的字符数组。

简单的if (type == 'f')字符比较可以为您提供正确的结果。