Как прочитать файл с пробелами в имени в C - PullRequest
0 голосов
/ 21 ноября 2019

Я пытаюсь открыть файл, чтобы прочитать его содержимое, но когда в имени есть пробелы (например, lot of spaces.txt), он даже не открывает его. Как я могу это сделать? Я искал в Интернете, но нашел только решение с обратной косой чертой \ (добавляйте обратную косую черту перед каждым пробелом [например, lot\ of\ spaces.txt]), которое мне не работает.

MyFileCompressor.c

int main()
{

    char directory[100];
    char * direct;

    printf("File: ");
    scanf("%s", directory);

    if((direct = malloc(strlen(diretorio)+strlen(".newextension")+1)) != NULL)
    {
        direct[0] = '\0';
        strcat(direct, directory);
        strcat(directory,".newextension");
    }
    else
    {
        printf("Error!\n\n");
        return;
    }

    compress_file(directory, direct); //compress the file in typed directory to the new directory (direct)

    return 0;

}

1 Ответ

2 голосов
/ 23 ноября 2019

scanf() читает только одну строку на пробел (""), поэтому я изменил это:

     scanf("%s", directory);   

на это:

    getchar();
    gets(directory);

    //NOTE THAT THE USER NEEDS TO TYPE A DIRECTORY WITHOUT QUOTES ("")!

Теперь это работает.

...