私は友人のobjローディングコードを見ていました。彼はC++でやっています。コードは次のとおりです。scanfに関するこのコードは何ですか?
bool LoadObj(char* given){
char tempText[60];
std::ifstream OB(given);
OB.seekg(0,OB.end); int length = OB.tellg() ; OB.seekg(0,OB.beg);
char* STREAM = new char[length];
OB.read(STREAM,length);
OB.close();
char *t,dump[20];
int Number_Of_Vertices,Number_Of_faces;
t = strstr(STREAM,"vertices");
sscanf(&STREAM[&t[0]-&STREAM[0]-10],"%s # %i vertices",&dump,&Number_Of_Vertices);
printf("\nthere are %i vertices",Number_Of_Vertices);
t = strstr(STREAM,"faces");
sscanf(&STREAM[&t[0]-&STREAM[0]-10],"%s # %i faces",&dump,&Number_Of_faces);
printf("\nthere are %i faces",Number_Of_faces);
......
objファイルを読み込んでテストしたところ、正しく開かれました。しかし、私はsscanf()
の最初の引数、すなわち&STREAM[&t[0]-&STREAM[0]-10]
を理解していません。どのように機能するのか説明してください。
あなたはあなたの友人に尋ねることができませんか?それは彼らのコードです、彼らはそれまで所有するべきです。 – StoryTeller
私は彼に尋ねることができますが、彼は金曜日まで忙しいです。 – Fennekin
これはobjファイルです。http://pastebin.com/pvi7bU6y – Fennekin