如何在C中移动文件

如何在C中移动文件,c,rename,C,Rename,我需要将一个文件从一个输入移动到一个特定的文件夹,然而,“重命名”会使整个应用程序崩溃 char start[50]; const char dest = "C:\Windows\System32\oobe\info\backgrounds\supertemp.JPG"; printf("Please enter file to move \n"); fgets(start, sizeof(start), stdin); if (rename(start, dest) == 0){

我需要将一个文件从一个输入移动到一个特定的文件夹,然而,“重命名”会使整个应用程序崩溃

char start[50]; 
const char dest = "C:\Windows\System32\oobe\info\backgrounds\supertemp.JPG";

printf("Please enter file to move \n");
fgets(start, sizeof(start), stdin);

if (rename(start, dest) == 0){
    printf("Success \n");
}

else{
    printf("Failed %s ", GetLastError());
}
它总是在“if(rename(start,dest)==0)”时崩溃

我从来没有检索过错误值


任何帮助都将不胜感激!干杯

两个问题。您尚未将
dest
声明为数组,需要在文本字符串中放入双精度\\,以防止\被用作转义字符

const char dest[] = "C:\\Windows\\System32\\oobe\\info\\backgrounds\\supertemp.JPG";

fgets()
保留回车键。您可能应该使用类似于
start[strlen(start)-1]=0的方法来摆脱它。但这看起来不像是撞车的原因。哦,说得好!欢迎来到窗口。是否确定
\W
\S
\o
\i
\b
都有效,并且文件名中需要这些特殊字符?如果没有,您可能希望将这些反斜杠加倍。是否更改了\\,并将其更改为数组-但它仍然崩溃。这是因为您没有接受@pmg的评论。没有它,我的测试没有崩溃,但失败了。崩溃了什么“整个应用程序”?如何使“半个应用程序”崩溃?你说的“撞车”是什么意思?您是否将此问题隔离到一个简单的程序中?即使您取出输入并预定义了变量,它仍然会崩溃。对于崩溃,Windows说“程序已经停止工作”。您还没有发布完整的琐碎程序,所以任何人都可以猜出哪里出了问题。