【发布时间】:2016-10-14 15:19:20
【问题描述】:
我有一个代码,它在名为 (Nodes) 的目录中创建 j 个文件 (Node[j].ID),在这些 j 个文件中,代码写入 NodeResults 中包含的信息。目前,由于 strcat 函数不起作用,代码既不会创建也不会写入文件。请知道如何更正代码以获取包含在 NodeResults 中的信息的创建文件?提前致谢。请在下面找到代码:
{
int period, j ;
FILE*temporal;
FILE* temp_time;
char path[25];
char* extention = ".txt";
char s[30];
char temporal2[25];
long time_val = 0;
_mkdir("Nodes");
_mkdir("time");
temp_time = fopen("Time/time.txt", "w");
fprintf(temp_time, "%d,%d\n", ReportStep, Nperiods);
fclose(temp_time);
for ( j = 0; j < Nobjects[NODE]; j++ ) {
/* File path writing */
strcpy(temporal2,"Nodes/");
strcat(temporal2, Node[j].ID);
strcat(temporal2, extention);
temporal= fopen(temporal2, "w");
}
for ( period = 1; period <= Nperiods; period++ ) {
output_readNodeResults(period, j);
fprintf(temporal, "%9.3f,%9.3f,%9.3f,%9.3f,%9.3f\n",
NodeResults[NODE_INFLOW],
NodeResults[NODE_OVERFLOW],
NodeResults[NODE_DEPTH],
//NodeResults[NODE_HEAD],
NodeResults[NODE_VOLUME]);
}
fclose(temporal);
return Nperiods;
}
【问题讨论】:
-
使用调试器并检查 a) 创建文件名的结果 - 可以吗? b)
fopen的结果(无论如何,该检查都应该在代码中 - 始终检查fopen的结果!) -
minimal reproducible example 可能会有所帮助。
-
文件名25是不是有点小?您最终可能会覆盖其他变量。
-
我很确定 strcat 可以工作
-
试试这个问题,它可能会有所帮助。 How to write to separate files
标签: c