我有一个很大的问题,我不知道如何解决它。
我想解码一个非常长的Base64编码字符串(980.000个字符),但每次我调试它时都会收到这个错误:
错误C2026:字符串太大,未跟踪尾随字符
我试过了,但是我只能通过这个方法比较2个字符串
char* toHash1 = "LONG BASE 64 Code";
char* toHash2 = "LONG BASE 64 Code";
if (true) {
sprintf_s(output, outputSize, "%s", base64_decode(toHash1 =+ toHash2).c_str());
}有人知道我怎么才能让它工作吗?
发布于 2015-04-30 21:34:56
正如here文档所述,在使用MSVC时,字符串文字中只能包含大约2048个字符。您可以通过连接获得最多65535个字符,但由于这仍然太短,您不能在这里使用字符串文字。
一种解决方案是将字符串从文件读取到某个已分配的char缓冲区中。我不知道gcc和clang有什么这样的限制,所以尝试用它们来代替MSVC也可以解决这个问题。
发布于 2016-08-21 08:46:24
您可以首先将字符串转换为十六进制,然后可以像这样包含它。
char data[] = {0xde,0xad,0xbe,0xef}; //example然后可以像字符串一样使用它,如果需要,可以附加null结束符。
https://stackoverflow.com/questions/29966471
复制相似问题