gpt4 book ai didi

c++ - C++中输入名字和转载的堆栈程序

转载 作者:行者123 更新时间:2023-11-28 05:10:33 25 4
gpt4 key购买 nike

所以我的这个程序是一个堆栈程序,可以让企业主输入客户的姓名。我在应该将名称压入堆栈的循环中出错,我觉得这可能与我使用 stoi 的事实有关。有什么想法吗?

#include <iostream>
#include <string>
#include <stack>

using namespace std;

int main()
{
stack<string> name;

cout << "Welcome to Carl's Cab Stand!!" << endl;
cout << endl;

string input;
while (input != "Stop") //Loop to enter names
{
cout << "Enter the names of your clients for today (Enter 'Stop' when finished): " << endl;
cin >> input;
}

int x = stoi(input); //Convert int/string

for (int y = 0; y < x; x++) //Loop to push names onto stack
name.push(y);

while (!name.empty()) //Loop to print names
{
cout << name.top() << endl;
name.pop();
}

cin.get();cin.get();
return 0;
}

最佳答案

我认为您的代码中存在一些错误。

在你的 while 循环中,你总是用最新的输入覆盖变量输入。在您的情况下,它将始终是“停止”。

那么如果你使用 stoi,在值为“Stop”的变量输入上,它应该返回什么?

for循环好像也有问题:(int y = 0; y < x; x++)每次迭代都会增加 x 。因此,如果 x 为正,它将运行直到发生溢出。您将收到的错误可能是由于这一行而发生的:

name.push(y);

堆栈用于字符串。 y 是一个整数。所以我认为这会导致错误。

因此再次检查您的程序并考虑它如何工作。

问候安迪

关于c++ - C++中输入名字和转载的堆栈程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com