C Имя файла с несколькими периодами - PullRequest
0 голосов
/ 13 декабря 2018

Простой вопрос.

Когда я пытаюсь открыть файл с именем text.txt, он работает правильно.

Однако, если я переименую файл в text.cir.txt, это даст мне ОШИБКУ.

Что я могу сделать, чтобы это исправить?

FILE *fd;
char nome_fich[] = "text.cir.txt";
int x;
fd = fopen("text.cir.txt", "r");

if (fd == NULL)
{
    printf("ERROR");
}
else
{
    while ((x = fgetc(fd)) != EOF)
    {
        printf("%c", x);
    }
    fclose(fd);
}

1 Ответ

0 голосов
/ 13 декабря 2018

следующий предложенный код:

  1. безупречная компиляция
  2. выполняет желаемую функциональность
  3. правильно проверяет и обрабатывает ошибки

и теперь предложенный код:

#include <stdio.h>    // FILE, fopen(), perror(), printf()
#include <stdlib.h>   // exit(), EXIT_FAILURE

int main( void )
{
    FILE *fd = fopen( "text.cir.txt", "r" );

    if ( !fd )
    {
        perror( "fopen failed" );
        exit( EXIT_FAILURE );
    }

    // implied else, fopen successful

    int x;
    while ((x = fgetc(fd)) != EOF)
    {
        printf("%c", x);
    }
    fclose(fd);
}

при запуске с любым TXT-файлом выполняет требуемую операцию.

Примечание. Я работаю под управлением Linux версии 18.04

...