我对一个简单的c ++函数有疑问。这是我的cpp文件:
#include <string>
#include <iostream>
#include <stdio.h>
#include <ros/ros.h>
#include <json_prolog/prolog.h>
using namespace std;
using namespace json_prolog;
int main(int argc, char *argv[])
{
ros::init(argc, argv, "Knives");
Prolog pl;
char M[]="drawer";
cout<<M<<endl;
if(strcmp(M,"knife")==0)
{
string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#TableKnife')";
PrologQueryProxy bdgs = pl.query(q);
cout<< endl;
for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++)
{
PrologBindings bdg = *it;
cout << "Knives individuals= "<< bdg["M"] << endl;
}
cout<< endl<< endl;
}
if(strcmp(M,"drawer")==0)
{
string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#Drawer')";
PrologQueryProxy bdgs = pl.query(q);
cout<< endl;
for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++)
{
PrologBindings bdg = *it;
cout << "Drawer individuals= "<< bdg["M"] << endl;
}
cout<< endl<< endl;
}
return 0;
}
此代码与xml文件连接以对其进行解析。如果我编译它工作,并且我没有问题。现在我必须更改它,因为我不想定义变量char M,但是我想在输入中给出它。问题是我改变了:
char M[]=....
和:
char M;
cin>>M;
我对从char到const char的转换有疑问[-fpermissive]
我该如何解决?
尝试这个:
std::string M;
cin >> M;
替换这样的行:
if(strcmp(M,"drawer")==0)
有了这个:
if (M == "drawer" )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句