[英]Append operation on file doesn't seem to be working
如果某个条件为真,我想将数据追加到文件中,否则打开一个新文件并继续写入该文件...这会循环进行。
这就是我在做什么:
FILE* ptr
firstrun=1
***some code***
WHILE (condition)
{
if(!condition1 && !condition 2)
something
else if(condition1 || condition 2)
{
write data to file
if(firstrun)
FILE* ptr
fopen a file
firstrun=0
***some code***
if condition1
append data to previously opened file
if condition2
fclose
FILE* ptr
fopen another new file
}
}
整个代码似乎运行不正常,但其他部分确实运行正常。 创建的第一个文件与答案匹配,但以下文件均不匹配。 我还在创建更多的文件,不知道有多少数据在重复。
谁能告诉我我在这里所做的是否正确? 我没有发布代码,因为它很大。
其他一些情况:
1.如果我没有在顶部声明FILE * ptr,则它不会编译,因为唯一的其他声明在“ if”条件内
2.另一种方法是使用更多的“ if”,这会使代码更混乱,但我不确定这是否行得通。
任何帮助表示赞赏! 谢谢!
我不在工作,现在无法编译任何内容,但可以尝试以下方法
FILE* ptr = NULL
firstrun = true;
while (condition)
{
if((false == condition1) && (false == condition 2))
{
...
}
else /* Your second condition logic is not needed as written */
{
if(true == firstrun)
{
ptr = fopen("/some/file/name", "w");
firstrun = false;
}
if (true == condition1)
{
fwrite(ptr, ..., ..., ...);
}
else
{
fclose(ptr);
ptr = fopen("/some/other/file/name", "w");
}
}
}
请注意,如果条件为真,请问您的问题,将其追加到文件后,ELSE打开另一个文件。 您的伪代码先检查要写入的条件,然后再检查另一个条件以打开新文件。 这不会给您想要的if / else; 您可以使用原始伪代码来实现以下四种可能性中的任何一种:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.