0

前言:我已经将问题简化为它的关键功能,所以如果这听起来很奇怪,那是因为这是整个程序的一个小方面。

问题:

我想创建类似 100 个文本文件的内容:我将循环并使用我的循环计数器来命名文件。

然后,我想用随机字符串填充每个文件。为此,我使用下面定义的字符串。我想将文件从 [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。

4

1 回答 1

0

为简单起见,最好将字符串大小设为 1KB(1024 字节)的公分母。所以你不必照顾分数。之后,您可以按照上面提到的@naitoon (range*1024)/s1->length 进行操作。如果字符串的每个字符都是 1 个字节长。

至于随机整数,您可以调用标准库 rand(),它返回 0 到 RAND_MAX 之间的整数,至少为 32767。

此外,为了使随机数保持在您的范围(0~500)内,您可以对返回值进行模块化。

    range = rand() % 500;
于 2013-10-07T02:36:20.393 回答