C++ 如何从用户控制台输入读取多个字符串行?
我一直在试图解决一个需要未知数量的字符串输入的问题。 下面是我的代码,它没有按要求工作。我只是需要帮助,如何采取多行输入C++ 如何从用户控制台输入读取多个字符串行?,c++,string,C++,String,我一直在试图解决一个需要未知数量的字符串输入的问题。 下面是我的代码,它没有按要求工作。我只是需要帮助,如何采取多行输入 #include<bits/stdc++.h> using namespace std; void solve(string s) { // cout << "String is : " << s << endl; stack<char> stk; for(int i =
#include<bits/stdc++.h>
using namespace std;
void solve(string s)
{
// cout << "String is : " << s << endl;
stack<char> stk;
for(int i = 0; s[i] != '\0'; i++)
{
if(s[i] == '[')
stk.push(s[i]);
else if(s[i] == ' ')
{
if(stk.top() == s[i])
stk.pop();
else
stk.push(s[i]);
}
else if(s[i] == ']')
{
if(stk.top() == ' ')
stk.pop();
if(stk.top() == '[')
stk.pop();
}
}
cout << (stk.empty()? "YES" : "NO");
// while(!stk.empty())
// {
// cout << stk.top();
// stk.pop();
// }
// cout << '\n';
}
int main()
{
string s;
while(getline(cin, s))
{
solve(s);
}
}
#包括
使用名称空间std;
无效解算(字符串s)
{
//cout您的多行输入功能工作正常:
您没有得到任何输出,可能是因为分段错误:
要修复它,只需将调用stk.top()
的所有条件更改为:if(stk.top()='')
,例如:if(不是stk.empty()和stk.top()='')
,即首先检查堆栈是否为空,然后调用stk.top()
:。相关:
Input is :
[] [ [ ] ]
[ []]
[] ]
][