C 在未关闭的文件指针中打开文件
是否可以在已打开但未关闭的fopen命令中使用fopen函数打开文件?如果我真的需要这样做的话,结果会是什么呢 样本: . . 根据我代码的这一部分,我发现信息传输不正确。 我的猜测是:这可能是缓冲区或嵌套文件打开过程的问题C 在未关闭的文件指针中打开文件,c,file-pointer,C,File Pointer,是否可以在已打开但未关闭的fopen命令中使用fopen函数打开文件?如果我真的需要这样做的话,结果会是什么呢 样本: . . 根据我代码的这一部分,我发现信息传输不正确。 我的猜测是:这可能是缓冲区或嵌套文件打开过程的问题 谢谢 为什么不使用“倒带”将文件指针重置为开头。“你不能打开一个已经打开的文件。@Brandin谁告诉过你不能打开一个已经打开的文件?打开一个已经打开的文件没有什么错。”。但是,不要在这里这样做,因为没有必要。注意!有两个文件指针,l_file_ptr和file_ptr。
谢谢 为什么不使用“倒带”将文件指针重置为开头。“你不能打开一个已经打开的文件。@Brandin谁告诉过你不能打开一个已经打开的文件?打开一个已经打开的文件没有什么错。”。但是,不要在这里这样做,因为没有必要。注意!有两个文件指针,l_file_ptr和file_ptr。l_file_ptr保持打开状态,直到第二个文件指针file_ptr完成读取。最后l_文件\u ptr关闭。谢谢Brandin!,我根据你提到的想法解决我的问题。
l_file_ptr = fopen (l_inp_file, "r");
if (l_file_ptr == 0) fatal_err("Could not open l_inp_file", -1);
for (n_sph = 0; n_sph < num_sph; n_sph++)
{
sph = &objects[n_sph];
fscanf (l_file_ptr, "%d %le", &sph->num_surface_node, &sph->r_c);
sph->surfnode = (struct nodalpoint *) calloc(num_sursph, sizeof(*(sph->surfnode)));
if (sph->surfnode == 0 ) fatal_err("cannot allocate boundary nodes", -1);
file_ptr = fopen (s_inp_file, "r");
if(file_ptr == 0) fatal_err("Could not open s_inp_file", -1);
for (n_surp = 0; n_surp < num_sursph; n_surp++)
{
fscanf (file_ptr, "%le",&sph->surfnode[n_surp].x);
}
fclose (file_ptr);
file_ptr = 0;
}
fclose (l_file_ptr);
l_file_ptr = 0;