我正在try 访问文件,但访问目录时遇到问题. 我的Windows是葡萄牙语的,所以Área de Trabalho等于Desktop.

#include <stdio.h>

int main() {

    FILE *file;
    file = fopen("C://Users//gluci//OneDrive//Área de Trabalho//Automatos//teste.txt", "w");
    fprintf(file, "abcde");
    fclose(file);
    return 0;
}

我试过使用/\//\\,但似乎都不起作用.当我没有传递特定的目录时,程序会正常工作.

推荐答案

路径名可以在Windows API调用中使用\/作为分隔符.当然,在您try 过的C字符串中,\必须编码为\\,但您不应该使用//.

该问题可能与源文件中使用非ASCII字母Á的文件名的编码有关.默认情况下,Windows不支持UTF-8编码的文件名,因此如果编辑器使用UTF-8对C:/Users/gluci/OneDrive/Área de Trabalho/Automatos/teste.txt进行编码,这可能会导致问题.

你可以试着不带口音:"C:/Users/gluci/OneDrive/Area de Trabalho/Automatos/teste.txt"

您也可以try 目录的英文名称:C:/Users/gluci/OneDrive/Desktop/Automatos/teste.txt"

如果这些都不起作用,只使用ASCII字母创建到目录Área de Trabalho的快捷方式,并在路径名中使用该快捷方式.

还要记住,您可能对目标目录没有写入权限,并且完整路径也可能不正确.

C++相关问答推荐

位屏蔽对于无符号转换是强制的吗?

Mbed TLS:OAEP的就地en—/decryption似乎不起作用'

字符串令牌化xpath表达式

Ruby C Api处理异常

_泛型控制表达式涉及数组碰撞警告的L值转换错误?

C中函数类型的前向声明

Linux不想运行编译后的文件

是什么让numpy.sum比优化的(自动矢量化的)C循环更快?

错误:包含文件时类型名称未知

S将C语言宏定义为自身的目的是什么?(在glibc标题中看到)

如何计算打印二叉搜索树时每行所需的空间?

这个C程序在工作中途停止获取输入.我收到分段故障(核心转储).我还是不知道问题出在哪里

在txt文件中找到指定的字符串,并从数字中减go 相同的值

在编写代码时,Clion比vscode有更多的问题指示器

为什么realloc函数在此代码中修改变量?

我在C中运行和调试时得到了不同的输出

链接器脚本和C程序使用相同的头文件,这可能吗?

如何读取程序中嵌入的数据S自己的ELF?

OMP并行嵌套循环

为什么孤儿进程在 Linux 中没有被 PID 1 采用,就像我读过的一本书中声称的那样?