我正在使用波纹管结构“菜单”来存储菜单数据;在我能够从文件中正确读取之后,我将使用 for 循环为每个菜单加载我的所有菜单数据。variable 是 char* 的向量,用于存储每个菜单中的任何选项。然后与 freetype 库一起使用,在使用 opengl 创建的菜单按钮上显示菜单选项。
char n = 0,
tempBuffer[32];
FILE * menu = fopen ("MenuDatum.txt","r");
fgets (tempBuffer , 32 , menu);
Menue[n].variable.push_back(tempBuffer);//"text here"); <<
fclose (menu);
注释 '<<' 所在的字符串文字将起作用,但缓冲区在使用时会根据 tempbuffer 的大小输出奇怪的字符(根据需要):如果它的大小为 32,我得到 4c,或者如果它是 16,我得到 lk,等等;但是如果我只是使用 cout 输出,它会正确显示文件中的内容......所以我的输入或输出都没有问题,但我有吗?另外,'char* tempBuffer = "text here";' 将通过我的结构在库中正确显示“此处的文本”;等等。就像字符串文字一样。
文件中的文本只是“此处的文本”
这里也是菜单结构;我没有粘贴所有代码,因为它太广泛了
struct Drawings::menues
{
std::vector<char*> variable;
bool orrient;
float xPos, xPosF, yPos, yPosF, CR, CB, CG, CA, sliceWidth, sliceSpacing;
unsigned char options;
} Menue[3];