使用两个文件的相同代码在两个不同的文件中打印。 第二个文件(my_rank1.out)中没有写入任何内容,而在另一个文件中,所有内容都已正确写入
FILE *my_pointer;
FILE *my_rank_ptr;
for(int name = 1;name<=5;name++)
{
//read(name)
char filename[21];
sprintf(filename, "port%d.out", name);
char temp_file[21];
sprintf(temp_file, "my_rank%d.out", name);
my_rank_ptr = fopen(temp_file,"w");
my_pointer = fopen(filename,"w");
fprintf(my_rank_ptr, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t");
for(int i=1;i<=nstock;i++)
{
fprintf(my_rank_ptr, "var%d\t",i);
}
fprintf(my_rank_ptr, "fitness value\n");
fprintf(my_pointer, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t");
for(int i=1;i<=nstock;i++)
{
fprintf(my_pointer, "var%d\t",i);
}
fprintf(my_pointer, "fitness value\n");
//Some code follows this
fclose(my_pointer);
fclose(my_rank_ptr);
}
答案 0 :(得分:0)
每次
后添加#!/usr/bin/env python3
from solver import main
main.gui_mode()
一
fprintf(my_rank_ptr ....
因为你想写两个文件相同的东西
答案 1 :(得分:0)
如评论中所述,您是否正在检查fopen
声明的输出?
...
my_rank_ptr = fopen(temp_file,"w");
if(!my_rank_ptr) return -1;
my_pointer = fopen(filename,"w");
if(!my_pointer) return -1;
...
如果你的FILE指针不是NULL,那么为了简单你可以 安排所有的printf语句使用相同的循环:
fprintf(my_rank_ptr, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t");
fprintf(my_pointer, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t");
for(int i=1;i<=nstock;i++)
{
fprintf(my_rank_ptr, "var%d\t",i);
fprintf(my_pointer, "var%d\t",i);
}
fprintf(my_rank_ptr, "fitness value\n");
fprintf(my_pointer, "fitness value\n");
答案 2 :(得分:0)
尝试打开文件进行写入时,可能会收到权限错误。在尝试写入文件之前,应始终检查fopen()调用是否成功。
for all t in threads: t.join()
if(!my_rank_ptr)//无法打开...