这就是我想要实现的目标:
假设用户输入是:
生成随机实例……
输入电路板尺寸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, "#%sn", argv[inputfile]); fprintf(fp, "#area [0, MAX_X] x [0, MAX_Y]n"); fprintf(fp, "%dt%dn", max_x, max_y); fprintf(fp, "#number of points NUM_PTn"); fprintf(fp, "%dn", num_pt); fprintf(fp, "#coordinatesn"); for (i = 0; i < num_pt; i++) { fprintf(fp, "%dt%dn", x_coordinate[i], y_coordinate[i]); } fprintf(fp, "#end of instancen"); 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");
以上就是c/c++开发分享写入具有不同文件名的单独文件相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/519098.html