为什么我的int在c ++ programm中间改变了?

时间:2017-07-12 17:13:32

标签: c++ clion

我写了下面的代码。问题是这样的:在我从输入流中读取xy之后没有问题 - 平均xy是输入的确切值 - 但后来他们改变其他一些价值。

问题是什么?我无法理解!!

int count(char s[], char ss[] , long long int posF, long long int posE){}
int main()
{
    char s[]{};
    int q = 0;
    cin >> s;
    cin >> q;
    int choise = 0;
    while(q--)
    {
        cin>>choise;
        if(choise == 1)
        {
            int x = 0;
            cin>>x;
            char c;
            cin>>c;
            s[x-1] = c;
        }
        else if(choise == 2)
        {
            int x = 0;
            int y = 0;
            cin>>x>>y;
            //Fist LOG
            cout<<"First log x and y are correct    "<<x<<"  "<<y<<endl;
            char ss[]{};
            cin>>ss;
            //Second LOG
            cout<<"Second log x and y are  wrong?Why?"<<x<<"  "<<y;
            cout<<count(s, ss, x-1, y-1)<<endl;
        }

    }
    return 0;
}

1 个答案:

答案 0 :(得分:1)

正如另一个所说,你的代码问题是char ss[]{};cin>>ss;所以如果你评论你是否理解它

所以我的建议是使用字符串而不是char [],你可以使用cin<<作为字符串,你可以使用[] operator e.x

string s = "Code";
cout<<s[0];

和M.r @Ron是正确的,最好阅读This Books