vs2013 C++编译错误,系统文件出错

l1173806345 2015-10-23 09:22:05
错误 1 error C2678: 二进制“==”: 没有找到接受“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”类型的左操作数的运算符(或没有可接受的转换)
显示错误的文件为xutility,这个文件是系统文件啊,不可能有错啊
#include <string>
#include <cstring>
#include <cstringt.h>
#include <iostream>
#include <fstream>
#include <stdexcept>
using namespace std;
该包含的文件都包含了,就是找不到错误的地方


int FormulaAnalysis::Createsuoyin(CString mathstra, CString pOldFilea, int num)
{
// return 1;
CString mathstr = mathstra;
CString pOldFile = pOldFilea;
// string num(numa);
CString mathstr1 = "";
CString math = mathstr;
// AfxMessageBox(mathstr.c_str()); AfxMessageBox(pOldFile.c_str());

math.Replace(" ", "");
math.Replace("\r\n", "");

lan = math.GetLength();

if (lan>1)
{
char math0 = math[0];
string asc;
asc.insert(asc.begin(),math0);

//asc = math0.ToString();
math0 = math[1];


asc += math0;
if (asc == "\\[")
{
lan = lan - 4;
math = math.Left(lan+2);//MessageBox(NULL,math.c_str(),"OK",MB_OK);
math = math.Right(lan);//MessageBox(NULL,math.c_str(),"OK",MB_OK);
}
}
int countnum=-1;

//countnum = addmathexp(math, pOldFile, num);
if ( countnum == -1)
{
/
powerT = 0;
powerT1 = 0;
powerT2 = 0;
fracT = 0;
sqrtT = 0;
for (fracT2 = 0; fracT2<10; fracT2++)
{
fracT1[fracT2] = 0;
fracT3[fracT2] = 0;
}
// fracT3=0;
fracT4 = 0;
intT = 0;
intT1 = 0;
intT2 = 0;
if (lan<1)
return 0;
int i;

for (i = 0; i<lan; i++)
{

p = (myNode)malloc(sizeof(myArray));
p->str = "";
p->level = 0;
p->caozuofu = 0;
p->flag = 0;
}
syslan = 0;
sysi = 0;

Level = 0;
Flag = 0;
Middle = 0;
Big = 0;
// AfxMessageBox(math.c_str());
while (sysi<lan)
{
Analysis(p, Level, Flag, Middle, Big);
// AfxMessageBox("a jiesu");
if (sysi<lan)
{
sysi++;
syslan++;
}
}
//AfxMessageBox("aa");


string last = "";
string lastt = "";
string wordstr;
//string wordstr = null;
//char lastt1[25];
string lastt1 ;

for (i = 0; i<syslan; i++)
{
// last+=myarray[i].str+" ";
//last += myarray1[i].str + " ";
last +=p->str + " ";

lastt1.insert(lastt1.begin(), p->level);
//itoa(myarray1[i].level,lastt1,10);
//lastt1 = myarray1[i].level.ToString();
lastt = lastt1;
last += lastt + " ";

lastt1.insert(lastt1.begin(), p->caozuofu);
//itoa(myarray1[i].caozuofu,lastt1,10);
//lastt1 = myarray1[i].caozuofu.ToString();
lastt = lastt1;
last += lastt + " ";
lastt1.insert(lastt1.begin(), p->flag);
//itoa(myarray1[i].flag,lastt1,10);
//lastt1 = myarray1[i].flag.ToString();
lastt = lastt1;
last += lastt + " ";

//wordstr=(char*)(LPCTSTR)myarray1[i].str.c_str();
wordstr = p->str;

//int wordindex = Hash(wordstr);
//int wordindex;
//int index = wordindex;
//int intIndex = index;

//theIndexFun.AddNode(intIndex, myarray1[i].str, pOldFile, num, i + 1, myarray1[i].level, myarray1[i].caozuofu, myarray1[i].flag, syslan);


}
return 1;
}
else
return 0;


}

/*int FormulaAnalysis::Hash(string str)
{
int hash = 5381;
int c;

foreach(char ch ,in str)
{
hash = ((hash << 5) + hash) + ch;
}


return hash;
}*/

/*int FormulaAnalysis::addmathexp(CString mathexp, CString pfileno, int num)
{


SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=InvertIndex;Integrated Security=True;");



string sql;


sql = "select count(*) from HASHTable where pFileNo='";//%d",index);
sql = sql + pfileno + "'";
SqlCommand comm = new SqlCommand();
comm.Connection = con;
con.Open();
comm.CommandText = sql;
int nFields1 = (int)comm.ExecuteScalar();
con.Close();

if (nFields1 == 0)
{

nFields1++;
char *plcf=new char[5];
//string plcf = null;
itoa(nFields1,plcf,10);
//plcf = nFields1.ToString();
sql = "insert into HASHTable values ('";//%d,%d,'%s',%d,%d,'%s')",index,nFields2,pFileNo,1,syslan,sqlstr);
sql = sql + pfileno + "','" + mathexp + "'," + plcf + ")";
// AfxMessageBox(sql.c_str());
//m_db.ExecuteSQL(sql.c_str());

con.Open();
comm.CommandText = sql;
comm.ExecuteNonQuery();
con.Close();

nFields1 = -1;
}
else
{
char plcf[5];
itoa(num,plcf,10);

sql = "insert into HASHTable values ('";//%d,%d,'%s',%d,%d,'%s')",index,nFields2,pFileNo,1,syslan,sqlstr);
sql = sql + pfileno + "','" + mathexp + "'," + plcf + ")";


con.Open();
comm.CommandText = sql;
comm.ExecuteNonQuery();
con.Close();

nFields1 = -1;
}
//m_db.Close();
con.Close();
return nFields1;

}*/

void FormulaAnalysis::Analysis(myNode p, int level, int flag, int middle, int big)
{//AfxMessageBox("bb");

if (sysi >= lan)
return;
char math0 = math[sysi];
string asc;

int asc1 = math0;//atoi(asc.c_str());
//AfxMessageBox(asc.c_str());
if (math0 == '\\')
{

FunctionAnalysis(p, level, flag, middle, big);
}

else if (math0 == '{')
{


if (middle != 0)
{
big++;
}


if (powerT != 0)
{
powerT1++;
powerT2 = 0;
}
PowerAnalysis(p, level, flag, middle, big);
}
else if (math0 == '}')
{

if (big > 1)
{
sysi++;
big--;
if (powerT2 == 1)
{
powerT--;
level--;
powerT2 = 0;
if (powerT1 != 0)
powerT1--;
if (sysi < lan)
{
int sysit = 1;

while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
else if (powerT2 == 0)
{

if ((powerT == powerT1) && (powerT1 > 1))
{
powerT--;
level--;
powerT1--;
if (sysi < lan)
{
int sysit = 1;

while ((p-syslan+sysit)->level != level)
//while (p.level[syslan - sysit] != level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
else if ((powerT == 1) && (powerT1 == 0))
{
powerT--;
level--;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
else if ((powerT == powerT1) && (powerT1 == 1))
{
powerT1--;
powerT2 = 1;
Analysis(p, level, flag, middle, big);
}
else if ((powerT < powerT1))
{
powerT1--;
powerT2 = 1;
Analysis(p, level, flag, middle, big);
}
else
{

if (sqrtT == 1)
{
sqrtT = 0;
if (sysi < lan)
{
Analysis(p, level, flag, middle, big);
}
}
else
{
level--;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
}

}
}
else if (big == 1)
{
if (middle != 0)
{
if ((middle % 2) == 1)
{
big = 0;
sysi += 3;
middle++;

Analysis(p, level, 5, middle, big);
}
else
{
middle -= 2;
level--;
sysi += 2;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
if (fracT != 0)
{
fracT--;
big = fracT1[fracT];
middle = fracT3[fracT];
}
Analysis(p, level, flag, middle, big);
}
}
}
}
else
{
if (middle != 0)
{
if ((middle % 2) == 1)
{
big = 0;

sysi += 2;
middle++;

Analysis(p, level, 5, middle, big);
}
else
{
middle -= 2;

level--;
sysi++;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
if (fracT != 0)
{
fracT--;
big = fracT1[fracT];
middle = fracT3[fracT];
}
Analysis(p, level, flag, middle, big);

}
//sysi--;
}
}
else
{

sysi++;

if (powerT2 == 1)
{
powerT--;
level--;
powerT2 = 0;
if (powerT1 != 0)
powerT1--;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
else if (powerT2 == 0)
{
// if(fracT!=0||fracT4!=0)
// fracT1--;
if ((powerT == powerT1) && (powerT1 > 1))
{
powerT--;
level--;
powerT1--;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
else if ((powerT == 1) && (powerT1 == 0))
{
powerT--;
level--;
if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level!= level)
{
sysit++;
}

flag =(p - sysit)->flag;
Analysis(p, level, flag, middle, big);
}
}
else if ((powerT == powerT1) && (powerT1 == 1))
{
powerT1--;
powerT2 = 1;
Analysis(p, level, flag, middle, big);
}
else if ((powerT < powerT1))
{
powerT1--;
powerT2 = 1;
Analysis(p, level, flag, middle, big);
}
else
{
if (sqrtT == 1)
{
sqrtT = 0;
if (sysi < lan)
{
Analysis(p, level, flag, middle, big);
}
}
else
{


if ((currentKeyWord == "sqrt" || currentKeyWord == "frac" || currentKeyWord == "sum" || currentKeyWord == "prop") && level>0)
{
level--;
}

if (sysi < lan)
{
int sysit = 1;
while ((p - sysit)->level != level)
{
sysit++;
}

flag = p->flag;
Analysis(p, level, flag, middle, big);
}
}

}

}

}
}


}








...全文
137 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧