C++ C++;使用堆栈的代码

C++ C++;使用堆栈的代码,c++,C++,我正在写一个程序,它是一个简单的表达式检查器。程序要做的就是检查用户输入的内容是否格式正确。我有三份文件正在处理。我将在下面发布每个部分。我的问题在案例一的main.cpp中,如果编码正确的话。我对stacks是新手,不确定我是否正确地编码了我想要发生的事情。以防万一,代码将得到一个后跟:的表达式,如果输入是”(“,则推动堆栈,如果答案是)”,则进入顶部并进行比较,查看它们是否成对。然后输出表达式的格式是否正确。谢谢 代码如下: main.cpp switch (choice){ case 1:

我正在写一个程序,它是一个简单的表达式检查器。程序要做的就是检查用户输入的内容是否格式正确。我有三份文件正在处理。我将在下面发布每个部分。我的问题在案例一的main.cpp中,如果编码正确的话。我对stacks是新手,不确定我是否正确地编码了我想要发生的事情。以防万一,代码将得到一个后跟:的表达式,如果输入是
”(“
,则推动堆栈,如果答案是
)”
,则进入顶部并进行比较,查看它们是否成对。然后输出表达式的格式是否正确。谢谢

代码如下:

main.cpp

switch (choice){
case 1: 
    cout << "Current Setting: () " << endl;
    cout << "Enter your expression followed by a ; : " << endl;
    do {

    cin >> answer;


    if (answer = '(')
        stack.push( '(' );
    else 
        if (answer = ')' )
        (stack.top() == '(')




            while (answer != ';');
没有。 当你试图将整个表达式与一个字符进行比较时,你正在阅读整个表达式

if (answer = '(')
而且循环什么也不做

 while (answer != ';');
表情

if (answer = '(')
分配
”(“
回答并检查它是否为非零(即它是非零)——因此始终执行第一个分支

你需要:

if (answer == '(')
相反(另一个也一样)


您还需要在
}
之前关闭
,而

尝试运行代码并查看是否得到答案。这可能是家庭作业吗?可能添加家庭作业标记比较合适吗?您正在做什么
(stack.top()==='(')
,这是一个程序不会以任何方式使用的
=
(据我所知),可能会更好地解释这个问题。不清楚您真正想要做什么。提供更多详细信息您可能想查看
=
==
之间的区别。此外,如果允许,您可以使用STL堆栈。这是代码的一部分。我有
可以做的{
while
循环的代码顶部,在
while
之前仍然需要一个右括号。
if (answer == '(')