我想创建一个变量名称为"folder Iteration Number %d, Iteration"
的目录,然后在该文件夹中保存文本输出。
这是我的代码,该程序正确地建立了目录,但是没有保存文件,最后一行出错。
我已经尝试过
fp1 = fopen("D:\\Courses\\filename1.plt", "w");
对于最后一行,它可以工作,但是我想在我创建的特定文件夹中写入文件。
char directionname[120];
sprintf(directionname, "Profile Iteration Number_%d", it);
mkdir(directionname);
char filename1[120];
sprintf(filename1, "Velocity Profile Iteration_%d.plt", it);
FILE * fp1;
fp1 = fopen("D:\\Courses\\directionname\\filename1.plt", "w");
答案 0 :(得分:1)
替换此
fp1 = fopen("D:\\Courses\\directionname\\filename1.plt", "w");
作者
char fullname[240];
sprintf(fullname, "D:\\Courses\\%s\\%s", directionname, filename1);
fp1 = fopen(fullname, "w");
答案 1 :(得分:0)
您不使用创建的directionname
。
我想你想要类似的东西:
char directionname[120];
sprintf(directionname, "Profile Iteration Number_%d", it);
mkdir(directionname);
char filename1[120];
sprintf(filename1, "Velocity Profile Iteration_%d.plt", it);
char filepath[120];
sprintf(filepath, "D:\\Courses\\%s\\%s", directionname, filename1);
FILE * fp1;
fp1 = fopen(filepath, "w");
if (!fp1)
perror(filepath);
答案 2 :(得分:0)
fp1 = fopen("D:\\Courses\\directionname\\filename1.plt", "w");
从以上看来,您期望directionname
和filename1
被具有这些名称的变量替换。这不是字符串的工作方式。
在创建目录时,大多数情况都是正确的,但是在运行程序时,您似乎不在正确的位置,因此它将在当前目录中的“ D:\”下创建新目录。课程\”。因此,您应该更改directionname
,以包含要创建新目录的完整路径。
char directionname[120];
sprintf(directionname, "D:\\Courses\\Profile Iteration Number_%d", it);
mkdir(directionname);
然后您要在文件名前添加这样的值
char filename1[120];
sprintf(filename1, "%s\\Velocity Profile Iteration_%d.plt", directionname, it);
filename1
现在应该包含诸如“ D:\ Courses \ Profile Iteration Number_1 \ Velocity Profile Iteration_1.plt”之类的东西,这样您就可以打开它了...
FILE * fp1;
fp1 = fopen(filename1, "w");