Stringstream麻烦

时间:2016-07-19 11:53:33

标签: c++ loops stringstream

所以,我试图进行转换(整数到字符串),然后添加此字符串 与另一个。但似乎stringstream不工作..(它正常工作,但循环导致麻烦) 我已经完成了谷歌 &安培;几乎尝试了一切,但不能让这个代码工作..任何人帮助我:(?

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
int n;
cin>>n;

string arr[n];
string a;
int i=0;
int s;
int c;

cin>>a;
arr[i] = a;
i++;
cout<<"OK"<<endl;
n--;

while(n--)
{
    cin>>a;
    s = 0;

    for(int j=0;j<i;j++)
    {
        if(arr[j] == a)
        {
            s = 1;
            break;
        }
    }

    i++;

    if(s == 0)
    {
        arr[i] = a;
        cout<<"OK"<<endl;
    }
    else
    {
        c++;
        stringstream ss;

        ss<<c;

        string m = ss.str();

        a+=m;

        arr[i] = a;

        cout<<a<<endl;

        ss.str("");
        ss.clear();
    }
}

return 0;
}

1 个答案:

答案 0 :(得分:0)

c未初始化,您应该初始化它,并且在使用之前也s

int s = 0;
int c = 0;

您不能使用非const变量进行数组初始化,请考虑编写:

constexpr int MAX_STRINGS = 5;
string arr[MAX_STRINGS];

循环问题在于:

i++

你在最后一个元素上越过边界。只需将i++移至while循环的末尾。