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

时间:2016-10-09 05:39:48

标签: c c99

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

  

假设用户输入为:

     

生成随机实例......

     

输入电路板尺寸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

1 个答案:

答案 0 :(得分:0)

就像 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");