C++builder 创建具有随机字符的1MB大小的Unicode销毁

C++builder 创建具有随机字符的1MB大小的Unicode销毁,c++builder,C++builder,对于某些应用程序,我需要创建具有1MB随机字符的字符串 一种方法可能是使用System.random API通过1MB循环获得随机字符 是否有其他API可用于快速获取1MB字符串?您必须自己在循环中创建随机字符。您可以获取~1MB随机数据,对其进行base64编码,并将其第一个Mb作为字符串。它不会包含所有可能的字符,但应该是随机的。base64只是为了确保获得可读字符,但其他类型的编码也可以工作。您还需要决定是要1M字符还是1Mb数据:请记住,UnicodeString中的每个字符将使用2个字

对于某些应用程序,我需要创建具有1MB随机字符的字符串

一种方法可能是使用System.random API通过1MB循环获得随机字符


是否有其他API可用于快速获取1MB字符串?

您必须自己在循环中创建随机字符。您可以获取~1MB随机数据,对其进行base64编码,并将其第一个Mb作为字符串。它不会包含所有可能的字符,但应该是随机的。base64只是为了确保获得可读字符,但其他类型的编码也可以工作。您还需要决定是要1M字符还是1Mb数据:请记住,UnicodeString中的每个字符将使用2个字节。@Wimmel感谢您的回复。我一直在寻找一种用随机数据快速填充缓冲区的方法,但到目前为止运气不佳,除非我猜你要做的是:将所需数量的整数(或双倍数,或其他)的向量填充到循环中,然后你可以用base64对该块进行编码以获得字符串。Good luck.FYI,base64将编码数据的大小增加了4/3,因此需要786432字节的输入数据(786432
char
s、393216
word
s/
wchar\u t
s、196608
int
s、98304
int64
s/
double
s等)来生成1MB base64字符串。了解这些数字可能有助于编写更小的循环。您还可以考虑填充一个更小的缓冲区,然后将其复制多次以填充较大的缓冲区,然后可以使用Base64编码。这将减少您必须生成的随机数据量。