C202207xiaofang 2021-07-14 09:08 采纳率: 100%
浏览 52
已采纳

c++关于goto的玄学错误

如题

#include<bits/stdc++.h>
using namespace std;

int main(){
    string s;
    cin>>s;
    if(s=="SHELVE")
        goto to_1;
    string qwq,now;
    getline(cin,qwq);
    int l=qwq.find('"'),r=qwq.find_last_of('"');
    to_1:;
}

此段代码运行时goto会报错,为什么呢?

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2021-07-14 09:20
    关注

    C++中对跳转语句跳过临时变量有一些限制,改这样就可以了,供参考:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        string s;
        int l,r;
        string qwq,now;
        cin>>s;
        if(s=="SHELVE")
            goto to_1;
        //string qwq,now;
        getline(cin,qwq);
        l=qwq.find('"'),r=qwq.find_last_of('"');
        to_1:;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月14日
  • 创建了问题 7月14日