You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++写入100个随机数到txt文件每次输出相同值问题求助

C++随机数写入文件问题修复

错误原因

你的代码存在两处核心问题:

  • 仅在循环外调用1次rand()生成随机数,后续循环重复输出同一个固定值,这是运行结果全相同的主要原因
  • 缺少time()函数对应的头文件<ctime>,属于不规范写法,部分编译器会出现编译错误或种子生成异常

最小改动修复代码

在原有逻辑基础上仅调整代码顺序、补充缺失头文件即可正常运行:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime> // 补充time函数依赖的头文件
using namespace std;

int main(){
    ofstream output;
    output.open("Exercise.txt");       
    srand(time(0));
    for(int i=0;i<100;i++) {
        int numbers = rand() % 1001; // 随机数生成逻辑移到循环内,每次迭代生成新值
        output << numbers << " ";
    }
    cout << "Data appended" << endl;
    return 0;
}

优化方案(可选)

如果需要更高质量的随机数、避免1秒内多次运行程序出现种子重复的问题,可使用C++11及以上版本提供的<random>库实现:

#include <iostream>
#include <fstream>
#include <random>
using namespace std;

int main(){
    ofstream output("Exercise.txt");
    // 初始化随机数生成器,使用真随机数设备作为种子
    random_device rd;
    mt19937 gen(rd());
    // 限定随机数范围为0~1000
    uniform_int_distribution<int> dist(0, 1000);
    
    for(int i=0;i<100;i++) {
        output << dist(gen) << " ";
    }
    cout << "Data appended" << endl;
    return 0;
}

内容的提问来源于stack exchange,提问作者exo444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:36:03