Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C代码只在一个项目中工作,不在任何新项目中工作(不会写入txt文件)_C - Fatal编程技术网

C代码只在一个项目中工作,不在任何新项目中工作(不会写入txt文件)

C代码只在一个项目中工作,不在任何新项目中工作(不会写入txt文件),c,C,我有一个非常简单的C代码,它应该创建一个.txt文件并写入其中 #include <stdio.h> int main() { FILE* f; if ((f = fopen("asdTEST.txt", "w")) == NULL) { printf("Failed to open.\n"); return 1; } else { fprintf(f, "Hello\n"); fclo

我有一个非常简单的C代码,它应该创建一个.txt文件并写入其中

#include <stdio.h>

int main() {
    FILE* f;
    if ((f = fopen("asdTEST.txt", "w")) == NULL) {
        printf("Failed to open.\n");
        return 1;
    }
    else {
        fprintf(f, "Hello\n");
        fclose(f);
        printf("Success!\n");
    }
    return 0;
}
#包括
int main(){
文件*f;
if((f=fopen(“asdTEST.txt”,“w”))==NULL){
printf(“打开失败。\n”);
返回1;
}
否则{
fprintf(f,“Hello\n”);
fclose(f);
printf(“成功!\n”);
}
返回0;
}
我的问题是,当我在VisualStudio2019中编译它时,它没有做到这一点。奇怪的是,它确实在一个项目中工作,但是如果我创建一个新项目并将代码复制粘贴到那里,它就不会创建文件。但是,它将以代码0结束,就好像它成功了一样。如果我以管理员的身份运行编译后的二进制文件,它就可以正常工作

(在一个成功的项目中,它在源代码.c所在的目录中创建了.txt文件,这就是我想要它做的)

我的问题是-为什么相同的代码在一个VS项目中有效,而在其他(新)项目中无效?我能做些什么来解决这个问题


谢谢大家!

当程序以管理员身份运行时,可以更改工作目录。尝试在
fopen
呼叫中使用完整路径

fopen("C:\\Users\\Public\\Desktop\\myfile.txt", "w")

您是否以管理员身份运行Visual Studio?也许可以尝试
f=fopen(“C:\\real\\path\\to\\asdTEST.txt”,“w”)
code对我来说很好。它是否可能在与您要查找的目录不同的目录中创建文件?也许您可以尝试将文件的完整路径传递到
fopen
函数以检查它。您是尝试在VS内还是在命令行上运行它?如果它成功了(并打印“Success!”),则可能是在您想象之外的其他地方创建了文件,因为当前目录设置为您不希望看到的内容。或者,按照第一个答案中的说明,查询并打印当前目录:通过
\u fullpath()
功能-这可能会告诉您在哪里可以找到这些排泄物。