【发布时间】:2022-11-10 17:14:12
【问题描述】:
我正在制作一个“身份生成器”,计算机从 .txt 文件中随机选择行。
虽然它适用于代码的第一部分,但当我重复该代码并更改变量时,它仍然使用旧的 txt 文件。
预期结果:
Full name: {random first name} {random sur name}
Address: {random address}
实际结果:
Full name: {random first name} {random first name}
Address: {random first name}
我的代码
cout << "Full name: "; srand((unsigned) time(NULL)); std::ifstream firstnamefile("englishfirstname.txt"); int total_lines = 0; while(getline(firstnamefile,line)) { total_lines++; lines.push_back(line); } int random_number = rand() % total_lines; cout << lines[random_number] << " "; //--- Surname --- srand((unsigned) time(NULL)); std::ifstream surnamefile("englishsurname.txt"); total_lines = 0; while(getline(surnamefile,line)) { total_lines++; lines.push_back(line); } random_number = rand() % total_lines; cout << lines[random_number] << endl; // --- Address --- cout << "Address: "; srand((unsigned) time(NULL)); std::ifstream addressfile("addresses.txt"); total_lines = 0; while(getline(addressfile,line)) { total_lines++; lines.push_back(line); } random_number = rand() % total_lines; cout << lines[random_number] << endl;.txt 文件只是一个名称列表,例如:
约翰 迈克尔 马修 ETC...
【问题讨论】:
-
OT:在程序开始时只调用一次
srand((unsigned) time(NULL)),或者在调试过程中最好不要调用它,那么你很可能在每次运行时得到相同的伪随机数序列,这可能会简化调试。 -
好吧,我对这些东西不太了解,所以我把它们放在任何地方。
-
“我对这些东西不太了解,所以我把它们放在任何地方”: 好吧,这种态度不会让你走得太远,谷歌货物崇拜编程.