我正在使用 ubuntu 10.10,我想用几个随机测试来测试我的 C++ 程序,所以我想生成它们。我写了生成器:
// gen.cpp
#include <iostream>
#include <cstdio>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
srand(time(NULL));
int n=rand()%100;
int k=rand()%n+1;
printf("%d %d\n", n,k);
for(int i=0; i<n; i++) {
int a = rand()%100;
printf("%d\n", a);
}
return 0;
}
然后在终端输入:
for((i=0; i<10; i++)); do ./gen > $i.in; done
但结果是所有 *.in 文件都包含相同的数字。当我输入:
./gen > 0.in
./gen > 1.in
依此类推,然后一切正常 - 所有 *.in 文件都不同。但我不想每次需要它们时都手动创建它们。我想循环执行此操作。为什么会这样,我该如何解决?