我遇到了一个看似简单的问题,但我无法让它发挥作用。我使用标准的C ++函数append()来添加一个空格," ",和另一个单字符串(str2)到另一个字符串(str1)的末尾
当我只追加一个或另一个时,我的代码完全正常,即:
str1.append(" ");
或:
str1.append(str2);
然而,当我尝试将两者连续追加时:
str1.append(" ");
str1.append(str2);
我立即收到分段错误。我很困惑它如何处理一个附加,但不是两个!有没有人看到解决方法?
提前致谢!
答案 0 :(得分:-3)
所以原来str2实际上是我作为一个字符串存储的双倍,它应该仍然有效。但是由于某些原因,即使它是一个字符串,C ++也不会使用它。所以我使用stod(str2)将str2切换回double,然后在串联时再次返回到字符串:
str2=stod("stuff");
str1.append(to_string(str2));
不知道为什么这个有效,而另一种方法没有(两个方法都将字符串输入到append()),但是它有效!