C++ 字符串解码期间出现意外结果
我在试着做多重转换器 我得到了意想不到的结果 这是我的代码(这段代码可以立即编译) 但在我的结果中C++ 字符串解码期间出现意外结果,c++,linux,string,C++,Linux,String,我在试着做多重转换器 我得到了意想不到的结果 这是我的代码(这段代码可以立即编译) 但在我的结果中 SubjectString -1 : Temp1SubString-1 : Temp2SubString-1 : text : VGVzdMbtwfY=?= dst : text : VGVzdMbtwfY=?= dst : Test▦▦▦▦ SubjectString -2 : Test▦▦▦▦ Temp1SubString-2 : VGVzdMbtwfY=?= Temp2SubString-2
SubjectString -1 :
Temp1SubString-1 :
Temp2SubString-1 :
text : VGVzdMbtwfY=?=
dst :
text : VGVzdMbtwfY=?=
dst : Test▦▦▦▦
SubjectString -2 : Test▦▦▦▦
Temp1SubString-2 : VGVzdMbtwfY=?=
Temp2SubString-2 : Test▦▦▦▦
主题字符串-2:测试▦▦▦▦ -> 不应该发生
但SubjectString与Temp2SubString获得了相同的值
我需要一些帮助
编辑1:
我尝试使用SubjectString.clear()
功能“fnBase64_解码”后,但不起作用
谢谢。看来解码的字符串没有终止。
(char*)Temp1SubString.c_str()
非常非常危险!您没有任何空间容纳这些字符串,因此您可能会在任何地方覆盖内存!是获取字节的更标准的方法,但请记住,只能写入字节!抛弃常量的需要通常意味着你做错了。我以前试过Temp1SubString.c_str()。。但是这个方法是const char。。并产生编译错误。@hybang,您的代码与clang配合良好,我得到了正确的结果。然而,正如我所怀疑的,这里有很多警告。我建议在编译时打开所有警告标志(使用叮当声its-Weverything
)并解决它们。
SubjectString -1 :
Temp1SubString-1 :
Temp2SubString-1 :
text : VGVzdMbtwfY=?=
dst :
text : VGVzdMbtwfY=?=
dst : Test▦▦▦▦
SubjectString -2 :
Temp1SubString-2 : VGVzdMbtwfY=?=
Temp2SubString-2 : Test▦▦▦▦
SubjectString -1 :
Temp1SubString-1 :
Temp2SubString-1 :
text : VGVzdMbtwfY=?=
dst :
text : VGVzdMbtwfY=?=
dst : Test▦▦▦▦
SubjectString -2 : Test▦▦▦▦
Temp1SubString-2 : VGVzdMbtwfY=?=
Temp2SubString-2 : Test▦▦▦▦