mt-course
Оценивание (ИС)Оценивание (Тех.Зрение)Оценивание (КТ)
materials
materials
  • About
  • Для новичков
    • Основы C++
    • IDE/Compilers
    • Антипаттерны и способы улучшения кода
      • 0. Освобождение ресурсов
      • 1. Чтение данных из файла
      • 2. Открытие файлов
      • 3. Объявление переменных
      • 4. Выделение памяти
      • 5. Необдуманный код
      • 6. Глубокие if
      • 7. Длинные if
      • 8. Non-void функции
      • 9. Создание массивов
      • 10. Проверка формата файла
    • Git/GitHub
      • Git CLI
      • Git GUI
      • Git Web
      • Git в среде разработке
        • Visual Studio
        • CLion
        • Qt Creator
        • Visual Studio Code
      • CLion + GitHub
      • Работа с GitHub Actions
  • Настройки OpenMP/C++ threads
    • OpenMP
    • Сборка с OpenMP
    • C++ threads
  • Настройки CUDA и HIP
    • Установка CUDA SDK
    • Установка HIP SDK
    • Настройка проектов CUDA
    • Настройка проектов HIP
  • Настройки OpenCL
    • OpenCL
    • Проверка и установка платформы
    • Настройка проектов
    • Профилирование
      • Тестовый стенд
      • Профилирование через rcprof
      • Инструкция по профилированию в CodeXL
Powered by GitBook
On this page
  1. Для новичков
  2. Антипаттерны и способы улучшения кода

10. Проверка формата файла

int main(int argc, char *argv[])
{
    int len;
    char *name_file;
    char *out_file;
    FILE *fin;
    name_file = argv[1];
    if (strcmp(strchr(name_file, '.'), ".txt") != 0)
    {
        printf("Error 2.Can not open file because bad format.\n");
        return 1;
    }
    // do smth
    return 0;
}
Вариант реорганизации и исправления кода
int main(int argc, char *argv[]) 
{
    int n = 0;
    FILE *fin = fopen(argv[1], "r");
    // smth

    if (fscanf(fin, "%d", &n) != 1) {
        fprintf(stderr, "Error 2. input file has invalid format.\n");
        fclose(fin);
        return 2;
    }

    //do smth
    return 0;
}
Previous9. Создание массивовNextGit/GitHub

Last updated 11 months ago