我正在尝试创建一个生成随机数的文件,然后我希望程序调用这些随机数并打印出来。 1; srand (time(NULL))函数给我一个错误,第二个;我想检查循环,我用来获得随机数的公式是正确的。
感谢。
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int rand(int x);
int main(int argc, char* argv[])
{
ofstream outputFile;
outputFile.open("fileTest.txt");
int i;
for (i =0; i<23; i++)
{
outputFile << rand(i) <<endl;
}
ifstream inputFile;
inputFile.open ("fileTest.txt");
int ranNum[i];
for (int i = 190; i <= 270; i++)
{
ranNum[i] = (rand() % (270-190+1)+ 190);
inputFile>> ranNum[i];
cout<<ranNum [i]<<" "<<endl;
}
system("pause");
return 0;
}
答案 0 :(得分:0)
我假设你的目标是生成一组随机数并将它们写入文件。使用下面的基本代码,您将找到工作版本。请注意一些意见:
int rand(int x);
这是一个声明,你不能把它留下来
是的,也有一个正确的实现这个功能
你包括的图书馆。srand
之前使用rand
建议初始化伪随机值生成器。你是
试图在每次执行初始化时使用srand(time(NULL))
与众不同
值。如果您使用静态值,即srand(0)
,您将获得相同的结果
每次随机序列。outputFile.close()
。cin.get()
为您提供了一个“停顿”,只需按下即可
退出计划。如果您愿意深入了解C ++ here,您可以获得一些方便的资源。
这是一段代码:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main ()
{
ofstream outputFile;
outputFile.open("fileTest.txt");
srand(time(NULL));
int range = 270 - 190;
int ranNum[range];
for (int i = 0; i <= range; i++)
{
ranNum[i] = 190 + 1 + rand () % range;
cout << ranNum[i] << " " << endl;
}
outputFile.close();
cin.get();
return 0;
}
这是一个使用ready program
的在线编译器