【发布时间】:2016-12-16 10:07:44
【问题描述】:
我正在制作一个生成非常大的随机数(比如 50 位)的 C 代码,然后将其存储在字符串缓冲区中并将其复制到文本文件中。 请参考我为此编写的代码:
FILE *fp;
char first_num[MAX];
char second_num[MAX];
char *answer;
int i,test_cases,numbers;
fp = fopen("data.txt", "w+");
if(fp==NULL)
{
printf("Error opening file\n");
exit(1);
}
printf("How many number combinations you wish to enter?\n");
scanf("%d",&numbers);
for(i=0;i<(2*numbers);i++)
{
char buf1[50], *number;
number = rand() % 100000000000000000000000000000000000000000000000000000000000000000000000;
sprintf(buf1, "%s", number);
fprintf(fp,"%s",buf1);
}
fclose(fp);
但是我得到一个浮点异常并且我的代码被转储了。 任何人都可以帮助我。一旦将这些随机数作为字符串存储在文件中,我实际上是在尝试将它们相乘。
【问题讨论】:
-
数字被声明为字符指针!
-
你没听懂我的提示.....
-
您也可以只使用 openssl 库并在字符串或文件上生成 sha512 和,然后取任意 50 位数字。