Ich schaute durch den Ladecode meines Freundes obj. Er hat es in C++ gemacht; Der Code lautet:Was ist dieses Stück Code in Bezug auf 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);
......
Wenn ich dies durch Laden einer Obj-Datei getestet, wurde es korrekt geöffnet. Allerdings verstehe ich nicht das erste Argument zu sscanf()
, nämlich: &STREAM[&t[0]-&STREAM[0]-10]
. Bitte erläutern, wie es funktioniert?
Können Sie nicht Ihr Freund fragen? Es ist ihr Code, sie sollten es besitzen. – StoryTeller
Ich kann ihn fragen, aber er ist bis Freitag beschäftigt. – Fennekin
Dies ist die Obj-Datei http://pastebin.com/pvi7bU6y – Fennekin