C++经典电文译码问题,为什么会程序挂掉

 

s2没有初始化,所以不能用下标的方式访问并修改s2的值,在getline那一行之后加一句

s2.resize(s1.size(),'0');

或者直接

s2 = s1;

也行

反正就是给s2一个初值

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

不想赋初值的话就别用下标访问修改了,改成添加进去即可

把s2[i] = 155-s1[i]的那三句话改成

s2.push_back(155-s1[i]);

或者

s2 += 155-s1[i];
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^