写入具有不同文件名的单独文件

这就是我想要实现的目标:

假设用户输入是:

生成随机实例……

输入电路板尺寸MAX_X MAX_Y:100 200

输入点数NUM_PT:10

输入要生成的随机实例数:7

你的程序将生成总共7个实例,写入7个单独的文件“instance10_j.txt”,对于j = 1,2,3,…每个实例都有矩形区域[0; 100] X [0; 200],并且有10分。 在矩形区域内均匀地随机生成点的坐标。 并且您的程序确保每个实例中没有重复点。 如果程序无法生成这些文件,请打印出错误并退出。 所有这些文件都保存在执行命令的当前目录中,程序将打印到屏幕上:

instance10_1.txt生成

instance10_2.txt生成

instance10_3.txt生成

instance10_4.txt生成

instance10_5.txt生成

instance10_6.txt生成

instance10_7.txt生成…完成!

这是我到目前为止所做的:

int writetofile(max_X, max_Y, numpt, random_inst); int main(int argc, char *argv[]) { FILE *fp; int max_x, max_y, num_pt, rand_inst; int *x_coordinate, *y_coordinate; int inputfile = 0, outputfile = 0; int i; if (argc == 1) { /* to generate random instances, accepting parameters from stdin */ printf("Generating random instances..."); printf("Enter the circuit board size MAX_X MAX_Y: "); scanf("%d %d", &max_x, &max_y); printf("Enter the number of points NUM_PT: "); scanf("%d", &num_pt); printf("Enter the number of random instances to be generated: "); scanf("%d", &rand_inst); return 1; } /* MAIN FUNCTION CONTINUES FOR REMAINING WORK */ } int writetofile(max_X, max_Y, numpt, random_inst) { FILE *fp; int i; for (i = 1; i <= random_inst; i++) { /* NEED HELP HERE */ fp = fopen(File with name instance[num_pt]_[rand_inst], "w"); fprintf(fp, "#%s\n", argv[inputfile]); fprintf(fp, "#area [0, MAX_X] x [0, MAX_Y]\n"); fprintf(fp, "%d\t%d\n", max_x, max_y); fprintf(fp, "#number of points NUM_PT\n"); fprintf(fp, "%d\n", num_pt); fprintf(fp, "#coordinates\n"); for (i = 0; i < num_pt; i++) { fprintf(fp, "%d\t%d\n", x_coordinate[i], y_coordinate[i]); } fprintf(fp, "#end of instance\n"); fclose(fp); 

我需要创建没有重复的随机实例,但更重要的是我应该将它们写入单独的文件

我的困难在于打开一个名为instance[num_pt]_[random_instances] ,我认为该文件应该包含在for循环中。

我正在使用Ubuntu终端通过ssh访问我的实验室计算机。

语言:c99; 编译器:gcc

就像Kaylum提到的那样。

 char name[MAX_LEN]; /* Incorporate this into your for loop */ snprintf(name, MAX_LEN, "instance%d_%d.txt", num_pt, random_inst); fopen(name, "w");