如何避免C中文件名中的“ \”出现问题?

时间:2018-10-26 04:49:28

标签: c file-io fopen

在C#中,当您需要处理文件时,可以使用@符号来避免更改文件名中的“ \”。

示例:

string fileName = @"C:\Users\username\Documents\text.txt";

但是在C语言中,我不能使用@符号。因此,我必须将“ \”替换为“ /”或使用“ \\”:

fopen = ("C:/Users/username/Documents/text.txt","r");

fopen = ("C:\\Users\\username\\Documents\\text.txt","r");

C中是否有一些技巧可以避免所有这些工作?

2 个答案:

答案 0 :(得分:1)

在大多数情况下,请不要在源文件中放置绝对文字路径名,尤其不要使用Windows特定符号的绝对路径名。从某种类型的输入数据加载或构造路径名,以使您的程序不会锁定在您开发它的盒子的文件系统布局中。

答案 1 :(得分:-1)

您可以编写一个小的辅助函数,以将所有的退格键转换为正向空格。

void fileconvert(char *filename)
{
    while(*filename !='\0')
    {
        if (*filename == '\')
        {
            *filename = '/';
        }
        filename++;
    }
}

您可以按以下方式使用它。

FILE *fp;
char filename[] = "C:/Users/username/Documents/text.txt";

fileconvert(filename);
fp = fopen(filename,"r");

这可能是@运算符在C#中的工作方式

相关问题