Программирование на Си Тест для подписчиков

Поделиться
HTML-код
  • Опубликовано: 27 мар 2017
  • Исходники: my-files.ru/8k8j0x
    Тест для подписчиков найти неточности в 2 листингах кода из упражнения 37 и 38 базового курса по СИ.
    Поддержать канал:
    If You want to support the channel:
    Донат / Donate
    RUB R939373054553
    USD Z657301568665

Комментарии • 18

  • @Khornatic
    @Khornatic 5 лет назад

    Во-первых спасибо большое за уроки, хоть и прошло уже два года, но грызу гранит науки и ты мне в этом помог.
    Во-вторых ночь на дворе(по крайне мере у меня на данный момент и я чуть-чуть сонный) и я попробовал с одним из файлов, но мне кажется это очень глупо и для меня главный момент, чтоб работало, а уже потом говно или красивый код)
    #include
    #define LEN 200
    void fail()
    {
    char str[LEN];
    char name[LEN]={"By from is LAMER to the programmer"};
    FILE *file_ptr;
    file_ptr = fopen("new_file.txt", "r+a");
    if(file_ptr != NULL)
    {
    fprintf(stdout,"Fail New_file.txt created!
    ");
    fgets(str, LEN, file_ptr);
    fprintf(stdout,"%s
    ",str);
    fputs(name, file_ptr);
    }
    else
    {
    fprintf(stderr, "False did not creat new_file.txt
    ");
    }
    }
    int main(void)
    {
    fail();
    }

  • @user-kf3wh2mp2t
    @user-kf3wh2mp2t 5 лет назад +1

    Сильно позже, но fclose() бы хорошо использовать

  • @tricking16
    @tricking16 6 лет назад

    можно написать так ,тем самым сократить код
    FILE *ishodnik_ptr= fopen("ishodnik_ptr.txt" , "r");
    FILE *copy_ptr = fopen("copy_ptr.txt" , "w");
    ну и в первом файле

  • @oljaolsa7261
    @oljaolsa7261 4 года назад +1

    а где ответ на вопрос?? мне интересно как оптимизировать код, но я еще только учусь и не могу ответить сама...

  • @cglike
    @cglike 6 лет назад +1

    Я бы пожалуй попробовал но хз куда кидать ответ, да и времени уже дофига прошло

  • @steindvart3489
    @steindvart3489 4 года назад +2

    Привет! Доработал ваш код, а изменения пояснил в комментариях.
    Опубликовал в двух частях на pastebin:
    Задание 1: pastebin.com/xnmcDvxt
    Задание 2: pastebin.com/3xB3Hn92

    • @FromtheLAMERtotheProgrammer
      @FromtheLAMERtotheProgrammer  4 года назад +2

      Молодец! Одна голова хорошо а две лучше ) только return 0; не обязательно писать в конце кода )

    • @steindvart3489
      @steindvart3489 4 года назад +2

      @@FromtheLAMERtotheProgrammer, это был ответ на "тест", о котором говорилось в видео.
      Да, не обязательно. Но, как по мне, лучше явно указывать это, так как main у нас всё равно что-то да возвращает.

    • @FromtheLAMERtotheProgrammer
      @FromtheLAMERtotheProgrammer  4 года назад +2

      @@steindvart3489 да возвращает но в случае успешного выполнения всегда 0 так что указывать не обязательно

    • @nadyamoscow2461
      @nadyamoscow2461 3 года назад

      Мы вроде как обратный вариант, как у вас в if (NULL == file_inp) еще не проходили. Но вариант интересный, спасибо, что показали. И указатели "оптимизировали" ( в смысле, как наше правительство медицину) - тоже интересно. Но в исходном варианте было тоже полезно именно с фактом использования указателей. Пусть даже за счет размытия общей эффективности. И еще: для size_t ch_counter; компилятор требует тип данных integer, как было в исходнике. А вообще, вы молодец - спасибо, что поделились. Отлично мотивирует к дальнейшей учебе.

    • @steindvart3489
      @steindvart3489 3 года назад +1

      @@nadyamoscow2461
      Обратный вариант - это чисто как программисту захочется написать, тут и проходить особо нечего. Можно (1 == 2), или (2 == 1) - функциональной разницы нет, но есть разница в эффективности вычислений - если первый операнд `==` будет TRUE, то второй можно даже не смотреть. Но, опять же, тут больше к стилю кода относится, по большей части. С функциональной точки зрения, можно вообще вот так написать (!file_inp) - суть та же.
      А что за "опитимизация" указателей?) Не совсем понял.
      Тип size_t - это typedef от unsigned int (если платформа 32-битная и int == 4 байта) или unsigned long (платформа 64-битная и long == 8 байт). Если идёт работа с адресацией памяти, то, для лучшей совместимости и скорости работы программы (в силу того, что компилятору не нужно будет проводить преобразование int в long), следует использовать size_t.
      В самом же моём примере, этот тип использован не совсем корректно, так как мы работаем с размером файла, а не с адресацией памяти. А размер файла может быть больше возможной адресации оперативной памяти. Однако, так как мы просто записываем в эту переменную кол-во считанных байтов в буфер, то, такой проблемы, по идее, возникнуть не должно. Для большей универсальности и безопасности для типа этой переменной лучше использовать макрос ULLONG_MAX из библиотеки limits.h

  • @aleksandrchepaikin9570
    @aleksandrchepaikin9570 4 года назад

    видимо имеется ввиду fclose()

  • @zarifizatullo3554
    @zarifizatullo3554 5 лет назад +1

    я нашоль это "r"

  • @valentinesknaryov9805
    @valentinesknaryov9805 7 лет назад

    держал лайк, красава! Сам то я просто просматриваю твое и подобные (Гена, Корнеев) видео (мне надо, я сектант-арчевод(исскуственно созданные в среде Linux библиотеки рассматривать будет кто?) ), но радует попытка заинтересовать зрителей и подписчиков, а это надо, заинтересовать основам(в начале был бит, и был он во главе байтов и бит, и суждено ему стать МегаБитом/*he is not megatrone*/), в альтернативу всяким джава и жаба-скрипт, так держать. Но все таки интересно, как в Винде прописать отображение кирилицы, попробовал
    как у Корнеева, но не то, мне то пофиг, я арчевод, но когда тока установил винду, 23 февраля этого года, ради корабликов, заинтересовался просто, все облазил, нет, то что есть, в препроцессоре и setlocal { ... } там какой то в коде не помогают, думаю, не все на Линуксподобных виснут, можэ, кто и задал бы вопрос, да стесняется, або я не учюял, куда свой нюх ... ну ... да ладно вам ... !

    • @FromtheLAMERtotheProgrammer
      @FromtheLAMERtotheProgrammer  7 лет назад +1

      Прочитай мой .PDF файл это отрывок из моего манула ) о том как выводить русскую локаль в Windows my-files.ru/346yc7

    • @valentinesknaryov9805
      @valentinesknaryov9805 7 лет назад +1

      о, спасибо, поэксперементирую