我有一个大问题,我不知道如何解决...
我想解码一个很长的 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());
}
有人知道我怎样才能让它工作吗?
最佳答案
记录在案here ,使用 MSVC 时,字符串文字中只能有大约 2048 个字符。通过连接最多可以得到 65535 个字符,但由于这仍然太短,因此您不能在此处使用字符串文字。
一种解决方案是将文件中的字符串读入分配的 char
缓冲区。我不知道 gcc 和 clang 有任何这样的限制,所以尝试使用它们而不是 MSVC 也可以解决这个问题。
关于c++ - 错误 C2026 : string too big, 尾随字符被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966471/