从stdio.h C++中使用函数remove(.)时出现问题
Problem with using function remove(..) from stdio.h C++
你好,我的问题是为什么下面的函数无法删除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]=' ';
int br=0;
do
{
while((inpch=fgetc(file1))!=EOF)
{
string[br]=char(inpch);
br++;
if(br==9)break;
}
if(br!=9)
{
string[br]=' ';
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
条件变为true,函数在到达函数末尾之前返回,甚至不调用remove
函数。
if(br!=9)
{
string[br]=' ';
fputs(string,file2);
return; //<------------ here you're returning!
}
你想写return
还是break
?看起来问题就在那里。
为什么不检查返回值和错误代码(errno),错误代码告诉您函数没有成功的确切原因?
用以下内容替换remove
调用:
if( remove( "myfile.txt" ) != 0 )
perror( "Error deleting file" );
else
puts( "File successfully deleted" );
它应该告诉你发生了什么。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 使用函数"remove"删除重复元素
- 我的Remove函数出了什么问题
- 从stdio.h C++中使用函数remove(.)时出现问题