Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 64

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 64 страницаИскусство программирования на Си (984073) страница 642015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 64)

тем больна работу со станлартным вводом/выводом. Хорошо, обрашасмся к функции рнии() или гйгсру(). Можно за- ше вероятность того, что ик можно будет повторно исХарактеристики хороших если требуется манипулировать двоичными файлами, но даться целью собрать козшскцию полсзных операций зз поль.|овать для других целей.

С лругой стороны, лля с текстовыми файлами мозкет возникнуть много специ- врсмя всей своей карьеры. К сожалению, мы нс всегда этого придется нотратгтть больше времени. а это может фнчных для конкретного проекта проблем. Использо- утруждасм себя упорядочением этих опсрапий для оказаться для вас проблемой Но ссг1и у вас есть время Свои инструменты следует писать не быстро, а правиль- ванне стандартного ввола/вывода позволит получить облегчения их повторного использования. Очень часто, репппь простую проблему, то расширьтс ее, а затем когда встречаются знакомь1е проблемы.

мы думаем цро напишите программу для решения этой обобшеннои ныс ресурсы программирования. Но игра стоит свеч — тров для обьединения инструментов в новые созидатель- себя: ' (о пю, я делал что-то подобное нескольло меся- проблемы. Вы поймете, что это один из наиболее инхорошис инструменты можно использовать снова и сно- ныс формь1. терссныл и полсзныл аспектов создания 1пштруметпов. цсв на таз".

Затем идем и ишсм ислодный кол старой ва Давайте поговорим о том, как созлавать хорошие ЗдСТд р тд прог)таммные средства. Простота лясм ее в новую программу и просто жлсм, пока эти Несколько пет назад, когда я работал в стразовой ком- программы выполняют то, что требуется. Интерфейс пояьэователя Дост иезтой ' Я еко Рой 4еРссостл талон- Нотах едолжнобыть.йюбаяр,алнзт ияС по.,— темои расценок, мнЕ порунипн проверить, отвечают ли флплтс с достижением 1ибкосги.

Здесь нтжсн компро- ляет создавать библиотеки полезныл подпрограмм и итаке- вилы современным требованиям. Звучит это да- мисе. более простая программа, скорсс вссго, булет связывать эти библиотеки с приложениями. Тсхнттлогия Д ил илни телннме тена тиз ее лис раздели йггздюггие нрюгрюмннмл инструменталннмн средств Часть й! Глава 20 доступ только тем подпрограммам, которые действи- блемой преобразования табуляция-пробел, то, наверное, Листинг 2020 Разделение выходных данных бы этого хотелось.

Например, нс будет ничего необычтельно и<нонну>Ютея ДанНОй ПрОГрамМОй. Такой подход найдетс занимательным написать собственную програм- программы на два потока. ного, если исхолныс файлы мэйнфрейчовских продает два реальных связанных между собой преимуше- мку, которая делает такого рола преобразование. Фьнс1нде <вед)о.ь> 4' 1 д < Гд' Ь> Грамм хранятся в библиотечном наборе данных (БНД) ства. Во-первых, окончательная программа оказываст- с длиной записи 80 битов (вот почему мэйнфреймовсся меньше, чем если бы в нес всгроили всю библиотс- ПРЕОбРаЗОВаНИЕ ИЗ ЕВСО(С В А5С(! ин)д С (в! да 'Ер) ких программистов иногда обвиняют в "80-колончатом ку Во-вторых, это значит, что выполнение прогРаммы БВСО(С д их о и п 'зу Ь( сЬаг Ьнггег(2048); мышлении").

В результате мэйнфрсймовский документ стандартов кодирования С-проектов часто настоятельсайтах. ольшинство эмуляторов терминала имеют ути- нь11е(гдеьв(ьнЕЕег, взяенЕ Ьнггег, вед(н)) лнту конверти ования, которая производит не ходи- но требует. чтобы строки были нс длиннее, чем 80 козл РазгРУзкам памЯти (свопированию) менеджером пачЯ- б азов; ния м . у АБСН и ЕВС!))С когд! Ерг(нег(вьдонс, "ьа , ЬнЕЕег); лонок, илн даже в некоторых случаях 72 колонки. Это ти операционной системы. Это процесс, который нног- бхо имо пс лапать ай м д мэйн и ской ЗЕ(тШЬЬ )м Ер) позволяет просматривать весь исходный код в редактода значительно увеличивает время выполнения.

Мы ( ре )8РР, который для вашего комфорта и удобства отоможем помочь компоновщик), размещая насколько это группо представить случай, когда вам захочется сделать д.тавз ть луча" к . ть ' ' ' бражаст восьмпразрядныс номера строк. Это хорошо, возможно по нескольку функций в каждом исходном это самому. Например, если создается Универсальный ч Нап име .з с .да з- ) сечи кол пишется на той же самой пзатформе поточу файле. Илеально, когда в исхолноч файле содержится ) что редактор не позволяет забывать о таком ограничетолько одна фУнкциа. Это сьвзан с тем, то очень тРУл-,, б - аГ нии. Однако, сели код уже существует на другой платно корректно извлечь код из обьектного файла на фун 1вг на)н(1не агдс, еЬаг вагди(!) форме и требуется его псренестн, то шансы на успех юшую конверсионную программу можно также найти кш!он'"ьном УРовне (Ра"чо'Рзлтс на!зРилзсР случай к л )ин Боба Стоу а Нч В Ь-сайт -д Сочт РЕЬВ *Ер " ХВЬЬ; ) величнваются, когда существуют строки кода, которые когда функ!)иа используе переменные с областью дей-, аб, д п б в имеется та лица прео разования (в ЕЕ(агде > 1) превышают доп)стимый предел.

В таких случаях праствия файла), поэтому компоновщик ил!ест склонность, -„... „„„, н ( вильнос решение — это огрслактировать нсхолный код Допопнитепвные пгематгтеосое рагдсгы Со ода ни е про грамм пес ив струева пгог воыг средств Часть (И Глава 20 "11пв ве ЕЬе вр111 ро1пе. и впвг Ье вг Чтобы увидеть, насколько неизящно это решение, В некоторых терминальных программах эмуляции р = вггсЬг(еех, Гопррег(*в)); давайте попробуем осуществить фильтрацию исходно- символы квадратных скобок ( и ) не поддерживаются.

10(ввьЬ 1= р) го файла С (такого, как сама эта программа) с аргумен- Символы ОхВА и ОхВ — это эквиваленты ЕВСР(С ( 1пгуа1 )и (р — Вег); том командной строки, равным )О. Ниже приведен символов А5СП Ох5В (левая кшхтрттная скобка) и Ох5Р ) в)геог Ье1рввд!О]; фрагмент результата вывода. (правая квадратная скобка). Однако на практике эти е1ве значения зачастую (в зависимости от установок вашей ( 1ог(1 = О; 1 < ЗЧ 1++) 1.пе аагп(1 терминатьной эмуляции) не работают, потому что ком- Рг(пге( сап'г соптегг ьех чв1пе ъа.1п", 1пг агчс,( в); сваг **в) поновшик отбрасывает их как недопустимые символы.

реев(ве1рввв(1) ); с аг в ' ' вате(ВХХт УЛЬЬОВВ)) гвч) Для С-программистов это прелставляет опрелеленную ) проблему. Одним из решений, если это можно так на- ++ад звать, является использование вместо скобок триграфов. ) зпе ввгп(гпе агдс, сЬаг *вагди) Гпв = ВХ11 Например: гегпгп 1пеуа)Г т впссе55 ) 1пс веаепв = ВХ1Т 50ССЕ55; сЬвг Муаггвутт (тт) = "Ие11о ыог10" 1 сЬаг *е1 еЬвг Уопгдггвут?(100зт) = (0)1 Если использовать эту программу осторожно, то она сЬаг *евер; пер; Этот метод работает, но код довольно трудно про- будет прекрасно работать.

К сожалению, при непра1пе ГЬ1всваг> (пе ГЬ11 втге Г 1(в; всЬвг; Ь ° читать. вильном вводе (т.е. когда строка не распознается как вгге 1 спгг11пе = О; ауге г Как только встречается триграф, ЕВСР)С загружа- имеющая шестнадцатиричный формат) она что-то нс- 11в; ет пару символов, которые компоновщик трактует как разборчиво пишет в выходной поток и завершает рабо- ех с(кхгт Рлгьвкк); ) чЬ»1е((геаб(вс, 1, 1. [Р)) ( Н (с == (ппвздпеб сЬаг1»п) рога("Еап'С чгНе Со Ше. ) сс1ове([Р)Г ехзС(КХгт РЬ1ЬЛКК); ) Н(КОР == 11)пвЬ(ур)) ( роев("111пав (а»1еб.

); гс1ове(гр); ех»С[ВХ1т РЬ1ЬЛКВ); ) Лапа эниптэыэые тимоти«еепие раздет до эд па ие прээерапи э э ы» и не т рты ем там,мы» ар ил те ! Масть И! Глава 20 нужно и прилежно заменил й)пай() на Гаеей(ГР, ОЕ, Нссколькодовольно полезных >тнлнт уже выполня- гскситов недостаточно. Однако (СПАК В!Т+3)/4 эск- РЕЕК С()К). Это рациональный обходной путь, но он ют это.

К сожаленшо, они имеют тендснцизо показы- сигов уже булет достаточно. не понадобится, если использовать цо-настояшему вать шестнадцатиричные результаты вывода в формате зпс Вехнврегвусе = (скьк В1т + э) / 4; А)Ч8)-ориентированный компилятор. из шестнадцати колонок. Хорошо, если ваэци записи ппаздпеб сЬаг *техгвп[(ег; И наконец, даваитс рассмотрим функцию ша!по. имеют ллину, кратную !6 байтам.

Но, как правило, это ппвгдпеб сЬаг *ВехВп[[ег; с = (ппаздпеб сЬаг)опг; Важный момент злесь — эзо поведение программы, когнс так. (весь( 1, -)Ь, ВККХ СВК); Р ° ! да лобавляется несколько аргументов. А)Ч81 не гаранти- Поэтому лавайтс напишем собственную утилиту (ли- взхе С Вуееавеабз сопле++! Н(1 з= тчгНЕ(ае, 1, 1, ГР) ) руст, что агйт(0! содержит название программы. Для стинэ 20.4). По >молчанию установим !шину строки в»хе с тьсавусез конкретной С-реализации будет абсолютно правильным равной 16 байтам, поскольку это даст приемлемо разум- снабдить программу значением агкс, равным 0 В этом ныи вывод на 80-колоночный экран.

Олнако мы обес1прг1ергг = [ореп(Р»1епаае, "гЬ"); сл>чае агхи(0! будет [х(()ЕЕ. Если жс ваша операцион- эзсчим и воз жность изменен я длины стр к чт бы н(мвьь — 1ПР»1ерсг) ная система всегда обеспе эивает значение агкс, равное, колонки могли иметь требуем>ю ширину. Я поза(ютил- ( по крайней морс, 1 и вас нс заботит выпрос персиоси- ся, в частности, о том, чтобы слелать этот код макси- ргхпгт(тдап'С ореп 111е Ъв (ог мости, то для вас зто не является проблемой.

мально переносимым, поэтому его можно запускать геабспд.>п", Рз1епаве); 1пе таси(1пе аиде, спег *види [)) довольно безопасно на любой платформе, лаже на таВСаепа = КХгт РЬ1ЬВКК; ( ких, на которых один байт имеет 32 бита. Создавая ) Н (агдс < 4) инструменты для лэножсства платформ, позаботьтесь об е1ве ( пх переносимости и приложите к этому лсе >силия ( ) рг1пег( Ваадег св Шепаве веагсЬЬуге Вехкпгуксбгв = В[бСЬ * ) Донититсаоаые темаагинесниеразделы < издание нргггриим ни и и не трум снеги мнил средноте Часть и) Глава 20 /е Вставвтв аестваддатврвчвмй ход в Не1р(); завершенное тестирование предполагает до краиности ванисл~ функции ыггой() или некоторым подобным обвестваддатврачамй буфер с соответствуадам Зсасав = Н21Т РА1ЬННЕГ многочисленное повторение прогонов программы. Од- разом). Более то~о, считывать и писать файлы в формате сдввгоМ ег' ) пако если это нужно дслатгч так почему бы нс попы- СКЧ могут большинство программ табличных вычислеврг1всв((сьаг ')(Вехаи[гег + е1ве ТЬ1авуге * ( таться сделать это немного прогце и быстрее' Если мы ний.

Характеристики

Тип файла
DJVU-файл
Размер
12,26 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6505
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее