gpt4 book ai didi

c++ - 从 stdio.h C++ 使用函数 remove(..) 的问题

转载 作者:搜寻专家 更新时间:2023-10-31 00:20:17 25 4
gpt4 key购买 nike

你好,我的问题是为什么下面的函数无法删除dir1中指定名称的文件;我使用了 remove 函数,但它似乎存在某种问题。请帮我。

#include <stdio.h>
void test(char* dir1,char* dir2)
{

FILE * file1,* file2;
file1=fopen(dir1,"r");
file2=fopen(dir2,"w");
if(!file1){ return;}
int inpch;
char* string = new char[10];
string[9]='\0';
int br=0;

do
{

while((inpch=fgetc(file1))!=EOF)
{
string[br]=char(inpch);
br++;
if(br==9)break;
}


if(br!=9)
{
string[br]='\0';
fputs(string,file2);


return;
}
else
{
fputs(string,file2);
br=0;

}


}while(true);

fclose(file1);
remove(dir1);/// I DON"T UNDERSTAND WHY IT DOESN"T DELETE THE FILE.
fclose(file2);
}

最佳答案

我猜想在退出 do-while 循环之前的某个时刻,下面的 if 条件变为真,并且函数在到达函数末尾之前返回,甚至没有调用 remove 函数。

    if(br!=9)
{
string[br]='\0';
fputs(string,file2);
return; //<------------ here you're returning!
}

你想写return还是break?看起来问题就在那里。

关于c++ - 从 stdio.h C++ 使用函数 remove(..) 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6309937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com