前言:我已将问题简化为其关键功能,所以如果听起来很奇怪,那是因为这是整个程序的一个小方面。
问题:
我想创建100个文本文件:我将循环并使用我的循环计数器来命名文件。
然后,我想用随机字符串填充每个文件。我使用下面定义的String struck。我希望从[1KB到500KB]填写文件。
struct String // And yes I am using my own String library.
{
char *c;
int length;
int maxLength;
}
让我们假设我打开了文件(可能是在我创建它的时候,所以它是空的)。现在我会检查这样的事情。
int range = Random.Range(0,500);
我会得到一个预先确定文件大小的数字。因此,如果range == 100
,则文件将填充100KB的“数据”。
我首先要创建我的字符串。
// Maybe making this 100 chars would help?
String *s1 = makeString("abcdefghijklmnopqrstuvwxyz");
我如何计算出我将字符串s1
写入文件以使其大小为range
的次数?最好在写入文件之前,我不想先写,然后检查,然后再写。
我如何在C中获得随机整数值?我曾经在C#中使用Random.Range。
答案 0 :(得分:0)
为了简单起见,最好能使字符串大小为1KB(1024字节)的公分母。所以你不必小心分数。 之后你可以像上面提到的@naitoon那样(范围* 1024)/ s1->长度。如果字符串的每个字符都是1个字节长。
对于随机整数,您可以调用标准库rand(),它返回0到RAND_MAX之间的整数,至少为32767.
另外,为了保持随机数与你的范围(0~500),你可以做一个模数的返回值。
range = rand() % 500;