Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Т Е Х Н О Л О Г І Ї 8 страница




Можливі два варіанти роботи з однофайловими консольними програмами: або файл вже існує і його потрібно правити, або файлу ще немає. У будь-якому випадку починати необхідно, тільки переконавшись в тому, що немає відкритих проектів (що таке проект, ми незабаром про це взнаємо). Натисніть на меню File (Файл). Якщо команда закриття робочої області Close Workspace недоступна, значить, відкритих проектів немає і можна приступати до роботи над своїм текстом консольної програми. Якщо ж вона доступна, то натисніть на неї для закриття відкритого у даний момент проекту.

Б.2.1. Компонування наявного файлу

Якщо початковий файл *.срр вже існує, то виберіть пункт Open (Відкрити) з меню File (Файл). Майте на увазі, що це не те ж саме, що Open Workspace (Відкрити робочу область). У діалоговому вікні, що з'явилося на екрані, знайдіть потрібний файл, виберіть його і клацніть на кнопці Open (Відкрити). Файл з'явиться у вікні документа (якщо у програмі використовується консольна графіка, як у прикладі cidcstrc з розд. 5 "Функції" або в прикладі circles з розд. 6 "Об'єкти і класи", зверніться до розділу "Програми створення консольного оформлення" даного додаток).

Для компілювання і компонування початкового файлу виберіть пункт Build (Компонування) з однойменного меню. У діалоговому вікні з'явиться запит на створення звичайної робочої області проекту. Відповідайте ствердно. Файл відкомпілюється і буде пов'язаний зі всіма необхідними бібліотечними файлами.

Для запуску програми виберіть Execute (Запустити) з меню Build (Компонування). Якщо все зроблено правильно, то з'явиться вікно з результатами роботи програми.

Після закінчення роботи програми у вікні з'явиться фраза Натисніть будь-яку клавішу для продовження. Її вставляє в кінець програми компілятор. Вікно отриманих результатів роботи має бути видно впродовж тривалого періоду, щоб Ви могли їх переглянути.

Якщо Ви закінчуєте роботу з програмою, то закрийте її робочу область за допомогою пункту Close Workspace (Закрити робочу область) з меню File (Файл). Відповідайте ствердно, коли в діалоговому вікні з'явиться запит на закриття усіх вікон з документами. Програму можна запустити і вручну, безпосередньо з MS DOS. Сесія MS DOS відкривається у Windows з меню Start ñPrograms (Пуск ñ Програми) за допомогою ярлика MS-DOS Prompt (Сесія MS-DOS). В результаті Ви побачите чорне віконце із запрошенням MS DOS. Переміщайтеся по каталогах, використовуючи команду cd <ім'я каталога>. Виконувані (*.exe) файли програм, створених компілятором середовища MVC++, розташовуються в підкаталозі DEBUG каталога, у якому зберігаються файли проектів. Для того, щоб запустити будь-які програми, відкомпілювані у середовищі MVC++, зокрема ті, тексти яких є в цьому навчальному посібнику, переконайтеся, що Ви знаходитеся в тому ж каталозі, що і файл *.exe, і наберіть ім'я програми. Докладнішу інформацію можна отримати, скориставшись Довідковою системою Windows.

Б.2.2. Створення нового файлу

Щоб створити свій файл *.срр, закрийте робочу область відкритого проекту, виберіть пункт New (Новий) з меню File (Файл). Клацніть на закладці Files (Файли). Виберіть потрібний тип файлу C++ Source File (Початковий файл C++), наберіть ім'я файлу, переконавшись перед тим у тому, що Ви знаходитеся в потрібному каталозі. Клацніть на кнопці <ОК>|. З'явиться чисте вікно документа. У ньому можна набирати код консольної програми. Не забудьте зберегти файл, вибравши пункт Save As... (Зберегти як...) з меню File (Файл). Потім відкомпілюйте свою програму так, як це вже було описано вище.

Б.2.3. Виправлення помилок

Якщо у програмі є помилки, повідомлення про них з'являтимуться у вікні Build (Компонування) внизу екрану. Якщо двічі клацнути на рядку з якою-небудь помилкою, з'явиться стрілка у вікні документа, що вказує на той рядок у коді програми, де ця помилка відбулася. Окрім того, якщо у вікні Build (Компонування) поставити курсор на рядок з кодом помилки (наприклад, С2143) і натиснути клавішу F1, то у вікні документа з'являться коментарі до тієї чи іншої помилки. Помилки потрібно усувати до тих пір, поки не з'явиться повідомлення 0 error(s), 0 warning(s) (0 помилок, 0 попереджень). Для запуску програми виберіть пункт Execute Build (Виконання компонування) з меню Build (Компонування).

Однією з поширених помилок є відсутність в коді програми рядка using namespace std; // Використання стандартного простору імен

Якщо забути включити його у програму, то компілятор повідомить, що він не знає, що таке cout << endl і т.ін.

Перед початком роботи над новою програмою не забувайте закривати відриті проекти. Це гарантує, що Ви дійсно почнете створювати новий проект. Щоб відкрити вже скомпоновану| програму, виберіть Open Workspace (Відкрити робочу область) з меню File (Файл). У діалоговому вікні перейдіть в потрібну директорію і двічі клацніть на файлі з розширенням *.dsw.

Б.2.4. Інформація про типи в процесі виконання (RTTI)

Деякі програми, такі, як empl_io.cpp з розд. 19 "С++-система введення-виведення потокової інформації", використовують RTTI. Можна налаштувати середовищем MVC++ так, щоб ця функція працювала.

Виберіть пункт Settings (Настройки) з меню Project (Проект) і клацніть на закладці C/C++. Із переліку категорій виберіть C++ Language (Мова C++). Встановіть прапорець Enable Run-Time Type Information (Включити RTTI). Потім натисніть <ОК>|. Ця функція системи MVC++ дає змогу уникнути появи багатьох помилок компілятора і компонувальника, деякі з яких взагалі тільки вводять в оману.

Б.3. Робота з багатофайловими консольними програмами

Вище було продемонстровано, як можна швидко, але непрофесійно створювати консольні програми. Цей спосіб, можливо, і хороший для однофайлових програм. Але коли в проекті більше одного файлу, все відразу стає значно складнішим. Почнемо з термінології. З'ясуємо з поняттями робоча область і проект.

Б.3.1. Поняття про проекти і робочі області

У середовищі MVC++ використовується концепція робочих областей, що на один рівень абстракції вище, ніж концепція проекту. Річ у тому, що в робочій області може міститися декілька проектів. Вона складається з каталогу і декількох конфігураційних файлів. Усередині неї кожен проект може мати власний каталог чи ж файли усіх проектів можуть зберігатися в одному каталозі робочої області.

Напевно, концептуально простіше припустити, що у кожного проекту є своя окрема робоча область. Саме це ми і припускатимемо під час подальшого з'ясування.

Проект відповідає додатку (програмі), яку Ви розробляєте. Він складається зі всіх файлів, потрібних програмі, а також з інформації про ці файли і їх компонування. Результатом всього проекту зазвичай є один виконуваний *.exe файл (можливі і інші результати, наприклад файли *.dll).

Б.3.2. Робота над проектом

Припустимо, що файли, які Ви збираєтеся включити в свій проект, вже існують і знаходяться у відомому Вам каталозі. Виберіть пункт New (Новий) з меню File (Файл) і клацніть на закладку Projects (Проекти) в діалоговому вікні, що з'явилося. Виберіть із переліку Win32 Console Application. У полі Location (Розміщення) виберіть шлях до каталога, але саме ім'я каталога не вказуйте. Потім наберіть ім'я каталога, що містить файли, в полі Project Name (Ім'я проекту) (клацнувши на кнопці, що знаходиться праворуч від поля Location (Розміщення), Ви зможете вибрати потрібний каталог, переходячи по дереву, але переконайтеся в тому, що в цей шлях не включено саме ім'я каталога). Переконайтеся також в тому, що прапорець Create New Workspace (Створити нову робочу область) встановлений, і натисніть <ОК>|.

Наприклад, якщо файли знаходяться в каталозі c:\Book\Chl3\Elev, слідує в полі Location (Розміщення) вказати c:\Book\Chl3\, а в полі Project Name Field (Ім'я проекту) – Elev. Ім'я проекту автоматично додається до шляху (якби в полі Location (Розміщення) був вказаний повний шлях, то підсумковий шлях до файлів був би c:\Book\Chl3\Elev\Elev, а це, зазвичай, зовсім не те, що нам потрібно). Після цього з'являється ще одне діалогове вікно. Необхідно переконатися в тому, що вибрана кнопка An Empty Project (Порожній Проект), і клацнути на Finish (Закінчити). У наступному вікні натисніть <ОК>|.

У цей час в указаному каталозі створюються різні файли, що відносяться до проекту. Вони мають розширення *.dsp, *.dsw і т.д. Окрім того, створюється порожня папка DEBUG, в якій зберігатиметься відкомпілюваний файл, готовий для подальшого виконання.

Додавання початкового файлу

А зараз до проекту потрібно причепити початкові файли, що містять файли *.срр і *.h, які повинні бути доступні для перегляду в закладці Файл. Виберіть пункт Add to Project (Додати до проекту) з меню Project (Проект), клацніть на Files (Файли), виберіть потрібні файли і натисніть <ОК>|. Тепер файли включені в проект, і їх можна проглядати в закладці FileView (Файли) вікна View (Вигляд). Клацнувши на закладці QassView (Класи) в тому ж вікні, можна проглянути структуру класів, функцій і атрибутів.

Щоб відкрити файл проекту для перегляду і редагування, потрібно двічі клацнути на його значку в закладці FileView (Файли). Другим способом відкриття файлу є його вибір за допомогою команди Open (Відкрити) меню File (Файл).

Визначення місцезнаходження заголовних файлів

У Вашому проекті можуть використовуватися заголовні файли (зазвичай з розширенням *.h), наприклад, такі, як msoftcon.h у програмах, що використовують консольну графіку. Їх не потрібно включати в проект, якщо, зазвичай, Ви не хочете проглядати їх код програми, але компіляторові потрібно знати, де вони знаходяться. Якщо вони знаходяться в тому ж каталозі, у якому зберігаються початкові файли, то питань не виникає. Інакше потрібно повідомити компілятор про їх місцезнаходження.

Виберіть пункт Options (Параметри) з меню Tools (Інструменти). Клацніть на закладці Directories (Каталоги). Для того, щоб побачити перелік каталогів з файлами компілятора, що включаються, потрібно спочатку вибрати Include Files (Файли, що включаються) з пропонованого переліку під назвою Show Directories For (Показати директорії). Двічі клацніть на полі з крапочками в останньому рядку переліку. Потім перейдіть в директорію, в якій зберігається потрібний заголовний файл. Крапочки в полі будуть замінені на новий шлях до файлу. Натисніть <ОК>|. Ще можна набрати повний шлях до цієї директорії в полі Location (Розміщення).

Б.3.3. Збереження, закриття і відкриття проектів

Щоб зберегти проект, виберіть пункт Save Workspace (Зберегти робочу область). Щоб закрити пункт Close Workspace (Закрити робочу область) (відповідайте ствердно на запит закриття усіх вікон документів). Для відкриття наявного проекту виберіть пункт Open Workspace (Відкрити робочу область) з меню File (Файл). Перейдіть в необхідний каталог і відкрийте потрібний файл з розширенням *.dsw. Клацніть на кнопці Open (Відкрити).

Б.3.4. Компілювання і компонування

Як і у випадку роботи з однофайловими програмами, простим способом відкомпілювати, скомпонувати і запустити багатофайлову програму є вибір пункту Execute (Виконати) з меню Build (Компонування). Якщо запускати програму прямо з системи не потрібно, можна вибрати пункт Build (Компонування) з однойменного меню.

Б.4. Програми з консольною графікою

Програми, що використовують функції консольної графіки (описувані в дод. Д), вимагають декількох додаткових дій порівняно з іншими програмами. Вам знадобляться файли msoftcon.h і msoftcon.cpp. Вони були створені спеціально для цього навчального посібника, тому їх можна знайти тільки на сайті, адреса якого вказана у введенні.

1. Відкрийте початковий файл програми, як це було описано вище. У цьому файлі повинен бути рядок #indude "msoftcon.h".

2. Виберіть пункт Build (Компонування) з однойменного меню. Відповідайте ствердно на питання про створення звичайної робочої області проекту. Буде створений проект, але компілятор видасть повідомлення про те, що не знайдений файл msoftcon.h. У цьому файлі містяться оголошення функцій консольної графіки.

3. Найпростіше скопіювати цей файл в каталог з початковими файлами. Правильніше було б повідомити компілятор про те, де він може знайти цей файл. Слідуйте настановам з розд. "Визначення місцезнаходження заголовних файлів" даного додатку.

4. Тепер знову спробуйте скомпонувати свою програму. Цього разу компілятор знайде заголовний файл, але буде довго призупиняти свою роботу від кожної знайденої в ньому "помилки", оскільки компонувальник не знає, де шукати визначення графічних функцій. А вони знаходяться у файлі msoftcon.cpp. Підключіть його до програми, як це було описано в розділі "Додавання початкових файлів" даного додаток.

Тепер програма повинна відкомпілюватися та скомпонуватися нормально. Виберіть Execute (Виконати) з меню Build (Компонування) для того, щоб подивитися, як вона працює.

Б.5. Відлагодження програм

У розд. 4 "Настанови керування ходом виконання С++-програми" ми пропонували використовувати відлагоджувач для того, щоб легше було розібратися, що таке цикл. Тепер перед Вами конкретні рекомендації з використання вбудованого відлагоджувача Microsoft Visual C++.

Ті ж самі дії допоможуть Вам зрозуміти, де саме трапляються помилки, і як їх усувати. У цьому додатку ми розглядатимемо тільки однофайлові консольні програми, але той же підхід з невеликими варіаціями застосовується і для багатофайлових програм.

Почніть із звичайного компонування своєї програми. Спробуйте виправити всі помилки компілятора і компонувальника. Переконайтеся в тому, що код програми доступний у вікні редагування.

Б.5.1. Покрокове трасування

Щоб запустити відлагоджувач, просто натисніть F10. Ви побачите жовту стрілку поряд з вікном документа, що вказує на рядок з відкритою фігурною дужкою в main (). Якщо Ви хочете починати трасування не з початку, то встановіть курсор на потрібний рядок. Потім з меню Debug (Відлагодження), яке в цьому режимі замінює меню Build (Компонування), виберіть Start Debug (Почати відлагодження), а після цього Run to Cursor (Виконати до курсора). Жовта стрілка тепер з'явиться слідом за вибраним виразом.

Натисніть клавішу F10. Це приведе до того, що відлагоджувач перейде на наступну команду, яку можна виконувати. Відповідно, туди ж зрушиться стрілка. Кожне натиснення F10 означає крок трасування, тобто перехід до наступного виразу. Якщо Ви проганяєте цикл, то побачите, як стрілка доходить до останнього виразу, а потім перескакує знову на початок циклу.

Б.5.2. Перегляд значень змінних

Існує можливість перегляду значень змінних у процесі покрокового трасування. Клацніть на закладці Locals (Локальні) в лівому нижньому кутку екрану, щоб побачити локальні змінні. Закладка Auto (Авто) покаже вибірку змінних, зроблену компілятором.

Якщо потрібно створити власний набір змінних, що проглядаються, внесіть їх у вікно перегляду, розташоване в правому нижньому кутку екрану. Щоб зробити це, клацніть правою кнопкою миші на імені змінної в початковому коді програми. Із спливаючого меню, що з'явилося, виберіть пункт QuickView (Швидкий перегляд). У діалоговому вікні клацніть на Add watch (Додати) для підтвердження свого наміру. Ім'я змінної та її поточне значення з'явиться у вікні перегляду. Якщо змінна поки що недоступна (наприклад, ще не визначена у програмі), вікно перегляду видасть повідомлення про помилку замість значення поряд з іменем змінної.

Б.5.3. Покрокове трасування функцій

Якщо у програмі використовуються функції, є чудова можливість здійснити покрокове трасування кожного виразу функції. Це робиться за допомогою клавіші F11. На відміну від режиму трасування по клавіші F10, який розглядає кожну зустрінуту функцію як один вираз, такий режим дає змогу "увійти" всередину функції та виявити можливі помилки в ній. Якщо Ви примусите по клавіші F11 проходити бібліотечні функції, наприклад cout <<, то зможете милуватиметеся початковим кодом бібліотеки. Це процес довгий, тому радимо користуватися цією можливістю, тільки якщо Вам дійсно важливо знати, що відбувається усередині рутинних функцій. Втім, можна в міру потреби чергувати натиснення клавіш F10 і F11, залежно від необхідності виявлення помилок у внутрішніх функціях.

Б.5.4. Використання точок зупинки роботи програми

Точки зупинки, як випливає з їх назви, дають змогу тимчасово переривати роботу програми у вказаних Вами місцях. Коли їх потрібно використовувати? Ми вже показали, як можна примусити відлагоджувач проганяти програму тільки до курсора. Але бувають випадки, коли необхідно мати декілька таких точок. Наприклад, можна зупинити програму в кінці умови if, а також після відповідної else. Точки зупинки вирішують це завдання, оскільки їх можна ставити в необмеженій кількості. У них є ще і розширені функції, які ми тут розглядати не будемо.

Розглянемо, як вставити точки зупинки в код програми. По-перше, встановіть курсор на той рядок, у якому програма при трасуванні повинна зупинитися. Натисніть праву кнопку миші і виберіть з меню Insert/Delete Breakpoint (Вставити/Видалити точку зупинки). Напроти цього рядка коду програми з'явиться червоний кружок. Тепер, навіть якщо Ви просто запустите програму на виконання (вибравши, наприклад, Debug/Go (Відлагодження/Запуск)), програма зупиниться на цьому рядку. Можна на цьому часовому зрізі перевірити значення змінних, провести покрокове трасування коду програми і т.д. Загалом, можна зробити все, що Вам заманеться, наприклад, взагалі вийти з програми.

Щоб видалити точку зупинки, натисніть праву кнопку миші і виберіть пункт Видалити з меню, що з'явилося.

Незважаючи на те, що є ще багато інших функцій відлагоджувача, проте ми тут показали тільки деякі основні з них для того, щоб Вам було з чого почати роботу.


Додаток В. Дещо про С-систему введення-виведення

Цей додаток містить короткий опис С-системи введення-виведення. Незважаючи на те, що Ви передбачаєте використовувати С++-систему введення-виведення, є ряд причин, згідно з якими Вам все-таки необхідно розуміти основи орієнтованої С-системи введення-виведення. По-перше, якщо Вам доведеться працювати з С-кодом (особливо, якщо виникне потреба його перекладу у С++-код), то Вам потрібно знати, як працює С-система введення-виведення. По-друге, часто в одній і тій самій програмі використовуються як С-, так і С++-операції введення-виведення даних. Це особливо характерний для дуже великих програм, окремі частини яких писалися різними програмістами протягом достатньо тривалого періоду часу. По-третє, велика кількість тих, що існують С-програм продовжують знаходитися в експлуатації і потребують підтримки. Нарешті, багато книг і періодичних видань містять програми, написаних мовою програмування С. Щоб розуміти ці С-програми, необхідно розуміти основи функціонування С-системи введення-виведення.

Необхідно пам'ятати! Для С++-програм необхідно використовувати об'єктно-орієнто­ва­ну С++-систему введення-виведення.

У цьому додатку описані найбільш споживані С-орієнтовані функції введення-виведення. Проте стандартна С-бібліотека містить таку величезну кількість функцій введення-виведення даних, що ми не в стані розглянути їх тут у повному об'ємі. Якщо ж Вам доведеться серйозно зануритися у С-програмування, то рекомендуємо звернутися до довідкової літератури.

Система введення-виведення мови С вимагає містити у програми заголовний файл stdio.h (йому відповідає заголовок < cstdio >, що відповідає новому стилю). Кожна С-програма повинна використовувати заголовний файл stdio.h, оскільки мова С не підтримує С++-стиль внесення заголовків. С++-програма може виконувати дії з використанням будь-якого з цих двох варіантів. Заголовок < cstdio > поміщає свій вміст у простір імен std, а заголовний файл stdio.h – у глобальний простір імен, що відповідає С-орієнтації. У цьому додатку як приклади наведені С-програми, тому вони використовують С-стиль внесення заголовного файлу stdio.h і не вимагають встановлення простору імен.

Необхідно пам'ятати! Як наголошувалося в розд. 1, стандарт мови С був оновлений у 1999 році і отримав назву стандарту С99. У той час у С-систему введення-виведення було внесено декілька удосконалень. Але оскільки мова C++ опирається на стандарт С89, то він не підтримує засобів, які були додані у стандарт С99. Понад це, на момент написання цього навчального посібника жоден з широко доступних компіляторів C++ не підтримував стандарт С99. Та і жодна з широко поширюваних програм не використовувала засоби стандарту С99. Тому тут не описуються засоби, внесені у С-систему введення-виведення стандартом С99. Якщо ж Вас цікавить мова С, в т.ч. повний опис його системи введення-виведення і засобів, доданих стандартом С99, рекомендуємо звернутися до книги Герберта Шілдта " Полный справочник по C++" [27].

В.1. Використання потоків у С-системі введення-виведення

Подібно С++-системі введення-виведення, С-орієнтована система введення-виведення базується на понятті потоку. На початку роботи програми автоматично відкриваються три наперед певні текстові потоки: stdin, stdout і stderr. Їх називають стандартними потоками введення даних (вхідний потік), виведення даних (вихідний потік) і помилок відповідно. (Деякі компілятори відкривають також і інші потоки, які залежать від конкретної реалізації системи.) Ці потоки є С-версії потоків з in, cout і cerr відповідно. За замовчуванням вони пов'язані з відповідним системним пристроєм.

Потік Пристрій
stdin клавіатура
stdout екран
stderr екран

Необхідно пам'ятати! Більшість операційних систем, в т.ч. Windows, дають змогу перенаправляти потоки введення-виведення, тому функції зчитування і запису даних можна перенаправляти на інші пристрої. Ніколи не намагайтеся безпосередньо відкривати або закривати ці потоки.

Кожен потік, що є пов'язаним з файлом, має структуру керування файлом типу FILE. Ця структура визначена у заголовному файлі stdio.h. Ви не повинні модифікувати вміст цього блоку керування файлом.

В.2. Функції консольного введення-виведення даних

Двома найбільш популярними С-функціями введення-виведення є printf () і scanf (). Функція printf () записує дані у стандартний пристрій виведення (консоль), а функція scanf (), її доповнення, зчитує дані з клавіатури. Оскільки мова С не підтримує переван­та­жен­ня операторів і не використовує операторів "<<" і ">>" як оператори введення-виведення, то для консольного введення-виведення використовуються саме функції printf () і scanf (). Обидві вони можуть обробляти дані будь-яких вбудованих типів, в т.ч. символи, рядки і числа. Але оскільки ці функції не є об'єктно-орієнтованими, їх не можна використовувати безпосередньо для введення-виведення об'єктів класів, що створюються програмістом.

В.2.1. Використання функції printf()

Функція printf () має такий прототип:

int printf (const char *fmt_ string,.);

Перший аргумент Јmt_ string, визначає спосіб відображення всіх подальших аргументів. Цей аргумент часто називають рядком форматування. Вона складається з елементів двох типів: тексту і специфікаторів формату. До елементів першого типу належать символи (текст), які виводяться на екран. Елементи другого типа (специфікатори формату) містять команди форматування, які визначають спосіб відображення аргументів. Команда форматування починається з символу відсотка, за яким знаходиться код формату. Специфікатори формату перераховані в табл|. В.1. Кількість аргументів повинна точно збігатися з кількістю команд форматування, причому збіг обов'язковий і у порядку їх проходження. Наприклад, під час виклику наведеної нижче функції printf ()

printf ("Привіт %c %d %s", 'c', 10, "всім!");

на екрані буде відображений "Привіт з 10 всім!".

Функція printf () повертає число реально виведених символів. Негативне значення повернення свідчить про помилку.

Команди формату можуть мати модифікатори, які задають ширину поля, точність (кількість десяткових розрядів) і ознака вирівнювання по лівому краю. Ціле значення, розташоване між знаком % і командою форматування, виконує роль специфікатора мінімальної ширини поля. Наявність цього специфікатора приведе до того, що результат буде заповнений пропусками або нулями, щоб гарантований забезпечити для значення, що виводиться, задану мінімальну довжину. Якщо значення (рядок або число), що виводиться, більше за цей мінімум, його буде виведено повністю, незважаючи на перевищення мінімуму. За замовчуванням як заповнювач використовується пропуск. Для заповнення нулями потрібно помістити 0 перед специфікатором ширини поля. Наприклад, рядок форматування %05d доповнить число, що виводиться, нулями (їх буде менше п'яти), щоб загальна довжина була дорівнювала п'яти символам.

Табл. В.1. Специфікатори формату функція printf()

Код Формат
%c Символ
%d Десяткове ціле із знаком
%i Десяткове ціле із знаком
Експоненціальне представлення (рядкова буква е)
Експоненціальне представлення (прописна буква е)
%f Значення з плинною крапкою
%g Використовує коротший з двох форматів: %е або %f (якщо %е, використовує рядкову букву е)
%G Використовує коротший з двох форматів: %е або %f (якщо %е використовує прописну букву е)
Вісімкове ціле без знаку
%s Рядок символів
%u Десяткове ціле без знаку
%x Шістнадцяткове ціле без знаку (рядкові букви)
%x Шістнадцяткове ціле без знаку (прописні букви)
%Р Покажчик
%n Відповідний аргумент повинен бути покажчиком на ціле. Даний специфікатор зберігає у цьому цілому число символів, виведених у вихідний потік до поточного моменту (до виявлення специфікатора %n)
%% Виводить символ %

Точне значення модифікатора точності залежить від коду програми формату, до якого він застосовується. Щоб додати модифікатор точності, поставте за специфікатором ширини поля десяткову крапку, а після неї значення специфікації точності. Для форматів а, А, е, Е, f і F модифікатор точності визначає число десяткових знаків, що виводяться. Наприклад, рядок форматування %10.4f забезпечить виведення числа, ширина якого складе не менше десяти символів, з чотирма десятковими знаками. Стосовно цілих або рядкам, число, наступне за крапкою, задає максимальну довжину поля. Наприклад, рядок форматування %5.7s відобразить рядок завдовжки не менше п'яти, але не більше семи символів. Якщо рядок, що виводиться, виявиться довшим за максимальну довжину поля, кінцеві символи будуть відсічені.




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 361; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.07 сек.