gpt4 book ai didi

escaping - 为什么我必须对代码中的文件路径使用双反斜杠?

转载 作者:行者123 更新时间:2023-12-04 08:24:33 26 4
gpt4 key购买 nike

在我的程序中,我试图打开一个文件,例如 C:\unescaped\backslashes.txt ,但是打不开!为什么?

这是什么?

这是一个常见问答集。这也是一个社区维基,所以请大家参与维护。

为什么是这样?

该站点中有很多问题归结为 OP 不知道他/她需要在源代码中的文件路径中转义反斜杠。问题通常是“为什么我的程序不起作用?”或“为什么找不到文件?”,在源代码的某处会有:

const char *fileName = "C:\unescaped\backslashes.txt";

范围是什么?

此问题适用于 C、C++、Java、Python 和其他编译器将反斜杠视为转义字符的语言。

供引用的元帖子 - Proposal for exact-duplicate sink for all the "double-backslashes in filename" questions

最佳答案

这是初步答案。它是社区维基,所以请随时改进它。

在您的代码中的某个地方,您有一个包含未转义反斜杠的文件路径。例如:

const char *fileName = "c:\unescaped\backslashes.txt";

你需要把它改成:
const char *fileName = "c:\\unescaped\\backslashes.txt";

为什么?

C、C++、Java、Python 等语言的编译器将反斜杠视为特殊字符,称为 the escape character .

例如 \n将变成换行符。所以这个代码 - printf("C:\new file.txt");将打印

C:
新文件.txt

因此,如果您的文件名包含反斜杠,则程序将接收到的内容将不会是您在源代码中看到的内容。反斜杠本身可以用另一个反斜杠转义。所以这个代码 - printf("C:\\new file.txt");将打印这个:

C:\新文件.txt

关于escaping - 为什么我必须对代码中的文件路径使用双反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com