我对这段代码有疑问:
void readObj(const char* fName, std::vector<Vector3> &tempVertex, std::vector<Face3> &tempFaces){
FILE* file;
file = fopen(fName, "r");
if (file == 0)
printf("#ERROR# can't open file!");
else{
while(true){
char lineHeader[1000];
int res = fscanf(file, "%s", lineHeader);
if (res == EOF)
break;
else if (strcmp(lineHeader, "v ") == 0){
Vector3 v;
fscanf(file, "%f %f %f\n", &v.x, &v.y, &v.z);
cout<<"tempVertex.push_back(v)";
tempVertex.push_back(v);
}
else if (strcmp(lineHeader, "f ") == 0){
Face3 f;
fscanf(file, "%d %d %d", &f.a, &f.b, &f.c);
cout<<"tempFaces.push_back(f)";
tempFaces.push_back(f);
}
else{
fscanf(file, "/n");
cout<<"Nothing in this line!\n";
}
}
}
}
我在这里使用它:
private: System::Void readFile(System::Object^ sender, System::EventArgs^ e) {
vector<Vector3> test;
vector<Face3> ftest;
reading::readObj("Text.txt", test, ftest);
}
测试.txt:
v 1.0f 2.0f 3.0
f 1 2 3
它只生产:
Nothing in this line! (x8)
而不是 tempVertex.push_back(v) 和 tempFaces.push_back(f)。