开发者社区> 问答> 正文

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

我有这个非常简单的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;
}

我的问题是,当我在Visual Studio 2019中编译它时,它没有执行。奇怪的是-它确实在一个项目中起作用,但是如果我创建一个新项目并将其复制粘贴到该代码中,它将无法创建文件。但是,它将以代码0结尾,就好像成功一样。如果我以管理员身份运行编译的二进制文件,则可以正常工作。

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

我的问题是-为什么相同的代码在一个VS项目中起作用而在其他(新)项目中却不起作用?我该怎么做才能解决此问题?

谢谢!

展开
收起
几许相思几点泪 2019-12-23 22:10:17 12041 0
1 条回答
写回答
取消 提交回答
  • 函数调用的方式有多种,在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用,还是自右向左使用。对此,各系统的规定不一定相同。

    __cdecl调用规则就是C调用规则。按从右至左的顺序压参数入栈,由调用者把参数弹出栈。

    2021-02-26 14:43:42
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《0代码搭应用》 立即下载
不止代码 立即下载
用RxSwift写易维护易读的愉悦代码 立即下载