【发布时间】:2012-10-30 22:46:53
【问题描述】:
我认为使用fgets 是最好的选择,但显然它需要来自标准输入的输入?如何使用rand()生成随机数并存储?
【问题讨论】:
-
如何存储?最明显的方法是将其存储为十进制表示法;如果这就是你的意思,请说出来。
标签: c arrays random character null-terminated
我认为使用fgets 是最好的选择,但显然它需要来自标准输入的输入?如何使用rand()生成随机数并存储?
【问题讨论】:
标签: c arrays random character null-terminated
你可以使用sprintf():
char buf[11];
int r = rand();
sprintf(buf, "%d", r);
如果您的运行时库提供了snprintf(),则更强大的选择是:
snprintf(buf, sizeof(buf), "%d", r);
以这种方式使用snprintf()可确保生成的字符串不会溢出buf的边界。
【讨论】:
RAND_MAX 的值对于您的平台是什么,并使用适当的字符串宽度。如果不满足您对最大大小的假设,使用snprintf() 将避免覆盖缓冲区末尾的内存。
char buf[11] 以适应 10 位数字的 NUL 终止符。