我想检查一个20个字符的字符串对象是否只有空字符(值为零).我的尝试:
string subString;
subString = fileBuffer.substr(origin, origin+20);
if(strCompare.compare("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0") == 0)
cout<<"string is empty"<<endl;
else
cout<<"string is not empty"<<endl;
Run Code Online (Sandbox Code Playgroud)
我确定subString被赋予20个null的字符,但是,程序只输出"string is not empty".我也试过其他方法,例如将compare参数设为""或NULL无效.有人可以向我指出任何明显的错误或正确的方法吗?我真的很感激.
我正在使用win32和opengl,我在窗口坐标的glOrtho处设置了一个窗口.我启用了双缓冲,并使用glGet进行了测试.我的程序似乎总是撕掉我试图在其上绘制的任何原语,如果它不断翻译的话.
这是我的OpenGL初始化函数:
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glViewport(0, 0, 640, 480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 640, 0, 480, 0, 100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glDrawBuffer(GL_BACK);
glLoadIdentity();
Run Code Online (Sandbox Code Playgroud)
这是我的渲染函数,gMouseX和gMouseY是鼠标的坐标:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glTranslatef(gMouseX, gMouseY, 0.0f);
glColor3f(0.5f, 0.5f, 0.5f);
glBegin(GL_TRIANGLES);
glVertex2f(0.0f, 128.0f);
glVertex2f(128.0f, 0.0f);
glVertex2f(0.0f, 0.0f);
glEnd();
SwapBuffers(hDC);
Run Code Online (Sandbox Code Playgroud)
无论渲染功能运行的频率如何,都会出现相同的撕裂问题.我有什么问题或错过了吗?
我想要做的是让PHP脚本运行一个程序,让它以某种方式从中检索数据.例如,程序将解析文件中的数据并返回要显示的PHP脚本的数据.
到目前为止,我知道要调用exec("Program.exe");但是我必须让它创建一个包含数据的文件,然后让PHP脚本调用fopen并以这种方式获取它吗?有没有更好的方法呢?谢谢
我希望我的程序创建一个位于命令参数路径的文件,即program /home/user/directory/that/doesnt/exist/file.如果该目录不存在,fopen将无法打开该文件,因此程序必须创建目录.我是否必须编写自己的循环来检测每个斜杠和mkdir每个目录,或者是否有自动执行此操作的函数?
我不认为大多数编译器都会关心,例如,你不将f附加到float类型的变量.但仅仅因为我想尽可能明确和准确,我想表达正确的类型.
两个不同类型的文字操作数的结果类型是什么,还是取决于具体情况?例如:
int i=1.0f/1;
float f=1.0f/1;
Run Code Online (Sandbox Code Playgroud)
编译器不会在这两个实例中抱怨,是因为它对文字类型的容忍视图,还是因为操作结果的类型总是根据上下文转换?
我有一个继承自抽象基类的类.
class CStateBase
{
friend class CApplication;
friend class CGraphics;
virtual int Update() =0;
};
class CStateTitle: private CStateBase
{
friend class CApplication;
friend class CGraphics;
CApplication *f_App;
int m_iR;
int Update();
CStateTitle(CApplication *App);
~CStateTitle();
};
Run Code Online (Sandbox Code Playgroud)
在另一个类的方法中,CStateTitle被动态分配到CStateBase指针中.但是,如果我使用该指针尝试访问变量int m_iR,编译器会在CStateBase中查找变量,从而产生错误.如果我可以在基类中声明virtual int m_iR,我认为它可以正常工作,但由于某种原因,它不会让我声明虚拟数据成员.推荐解决此问题的方法是什么?谢谢你的帮助.