c++ - 错误 C2026 : string too big, 尾随字符被截断

标签 c++ string base64 helper trailing

我有一个大问题,我不知道如何解决...

我想解码一个很长的 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/

相关文章:

c++ - 如何从 begin() 和 end() 中实现 cbegin() 和 cend()?

.net - 为什么 string.Format 有多种风格?

c - 如何在 C 中释放 char*

php - 如何检查字符串在 PHP 中是否为 base64 有效

angular - 如何使用 ionic angular 项目的插件将音频文件转换为 base64

c++ - VM解释器-权衡性能的优点和缺点:较大的指令集/调度循环

c++ - 使用 ubuntu 在不同的显示器上共享 opengl 上下文

c++ - 如何在C++中进行类似window的安装

javascript - 根据某些字符和符号将文本字符串转换为数组

javascript - 我如何在 java 中解码由 javascript 使用 readAsDataURL() 生成并由 Json 发送的字符串?