在文件中生成随机数,并从文件中调用它们,然后将其打印出来

时间:2018-04-21 22:40:07

标签: c++ random ifstream ofstream

我正在尝试创建一个生成随机数的文件,然后我希望程序调用这些随机数并打印出来。 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;
}

1 个答案:

答案 0 :(得分:0)

我假设你的目标是生成一组随机数并将它们写入文件。使用下面的基本代码,您将找到工作版本。请注意一些意见:

  1. int rand(int x);这是一个声明,你不能把它留下来 是的,也有一个正确的实现这个功能 你包括的图书馆。
  2. srand之前使用rand 建议初始化伪随机值生成器。你是 试图在每次执行初始化时使用srand(time(NULL)) 与众不同 值。如果您使用静态值,即srand(0),您将获得相同的结果 每次随机序列。
  3. 另外我假设您不需要从文件中读取,因此遵循代码 生成随机整数数组,打印它们并保存到文件中。
  4. 在写入文件/流的最后,您需要关闭此文件 outputFile.close()
  5. cin.get()为您提供了一个“停顿”,只需按下即可 退出计划。
  6. 如果您愿意深入了解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

    的在线编译器