Как избежать проблем с "\" в именах файлов в C? - PullRequest
0 голосов
/ 26 октября 2018

В C #, когда вам нужно манипулировать файлами, вы можете использовать символ @, чтобы избежать изменения "\" в имени файла.

Пример:

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

Но в CI можноне используйте символ @.Поэтому я должен заменить "\" на "/" или использовать "\ \":

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

или

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

Есть ли какой-то трюк в C для избежания всехэто работа?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

По большей части, не помещайте в свои исходные файлы абсолютные буквальные пути, особенно не с обозначениями, специфичными для Windows. Загрузите или создайте пути из каких-либо входных данных, чтобы ваша программа не была привязана к макету файловой системы блока, на котором вы ее разработали.

0 голосов
/ 26 октября 2018

Вы можете написать небольшую вспомогательную функцию для преобразования всех обратных пространств в пробелы вперед.

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#

...