fopen错误的文件字符串?

Bbv*_*ghe 2 c file-io file

我的桌面上有一个名为fun的文本文件,但是当我通过时:

FILE* fp;

if((fp = fopen("/Users/<username>/Desktop/fun", "r")) == NULL)
{
    printf("File didn't open\n");
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

fp为null.我也试过了

/home/<username>/Desktop/fun
Run Code Online (Sandbox Code Playgroud)

和许多变化,我似乎仍然无法获得正确的文件路径.我是使用文件和C的新手.任何帮助将不胜感激.

Roh*_*han 6

fopen() 无法扩展shell关键字.

更改

FILE* fp = fopen("~/Desktop/fun.txt", "r")
Run Code Online (Sandbox Code Playgroud)

FILE* fp = fopen("/home/<yourusername>/Desktop/fun.txt", "r")
Run Code Online (Sandbox Code Playgroud)

类似'~', '*'的字符由shell解释并展开.