编译代码时出现这些错误。
experiment.cpp: In function ‘void convert(char*)’:
experiment.cpp:47:5: error: expected ‘}’ before ‘else’
experiment.cpp:47:5: error: expected ‘}’ before ‘else’
experiment.cpp: At global scope:
experiment.cpp:53:3: error: expected declaration before ‘}’ token
但我不明白为什么。我多次检查了所有的支撑。
void convert(char *infix)
{
for(int i = 0 ; i < m ; i++)
{
if(isalpha(infix[i]))
printf("%c",infix[i]);
else if(ispunct(infix[i]))
{
if(!isempty())
push(infix[i]);
else
{
if(check(infix[i]));
push(infix[i]);
else
{
printf("%c",pop());
push(infix[i]);
}
}
}
}
}
答案 0 :(得分:3)
if(check(infix[i]));
:删除最后的;
。
答案 1 :(得分:3)
错误在:
if(check(infix[i]));
删除尾随;
if(check(infix[i]))
答案 2 :(得分:2)
您的代码就像写作:
if(check(infix[i])) { } //if(something); == if(something) { }
push(infix[i]);
else //See why there's a problem?
即使您在声明中只有一行,也可以使用{
。
这样做可能会帮助您揭示可能存在的问题,例如您在那里;
。
另一个注意事项,为清晰起见使用&&
而不是嵌套if
s ..