Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конс_лек_2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
971.38 Кб
Скачать

Функція gets().

Функція gets() (get string - одержати рядок) дуже зручна для використання в інтерактивних програмах. Вона одержує рядок зі стандартного пристрою введення системи - звичайно клавіатури. Вона зчитує символи доти, поки не досягне символу переходу на інший рядок (‘\n’), дописує нульовий символ (‘\0’) і передає рядок викликаючій програмі.

Приклад:

#include <stdio.h>

int main ()

{

char name [25]; gets (name);

printf("name - %s\n", name);

return 0; }

Функція fgets().

Один з недоліків функції gets() полягає в тому, що вона не перевіряє, чи дійсно дані, що вводяться, розмістяться в зарезервованій для них області пам'яті. Зайві символи просто перекривають суміжні комірки пам'яті.

Функція fgets() виправляє це, дозволяючи указувати верхню межу кількості підлягаючих зчитуванню символів. Оскільки функція fgets() призначена для введення/виведення файлів, вона трохи менш зручна для введення з клавіатури, чим функція gets(). Від функції gets() вона відрізняється в трьох відношеннях:

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

  • Якщо функція fgets() зчитує символ нового рядка, вона зберігає його в рядку, на відміну від функції gets (), що його відкидає.

  • Вона приймає третій аргумент, що вказує на підлягаючий зчитуванню файл. Щоб виконати зчитування з клавіатури, як аргумент необхідно використовувати stdin (скорочення від standard input - стандартне введення); цей ідентифікатор визначається у файлі stdio.h.

Функція getchar().

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

ch:

0

ch = getchar();

Оператори. Види операторів.

Оператори Сі керують процесом виконання програми. У Сі, як і в інших мовах програмування, є умовні оператори, оператори циклу, вибору, передачі керування і т.д. Нижче представлений список цих операторів:

break continue do for goto

if

null

return

switch

while

Таким чином всі оператори мови Сі можуть бути умовно розділені на наступні категорії:

- умовні оператори, до яких відносяться оператор умови if і оператор вибору switch;

  • оператори циклу (for, while, do while);

  • оператори переходу (break, continue, return, goto);

  • інші оператори (оператор "вираз", порожній оператор).

Всі оператори мови Сі, крім складених операторів, закінчуються крапкою з комою ";".

Оператори Сі складаються з ключових слів, виразів і інших операторів. В операторах Сі припустимі наступні ключові слова:

break default

for return

case

do

goto switch continue

else

if while

Оператор, що є компонентом іншого оператора, називається "тілом" включаючого оператора. Часто оператор - тіло є складеним оператором, що складається з одного чи більше операторів. Складений оператор обмежується фігурними дужками. Всі інші оператори Сі закінчуються крапкою з комою (;).

Будь-який з операторів Сі може бути попереду позначений міткою, що складається з імені і двокрапки. Операторні мітки позначаються тільки оператором goto.

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

Оператор вираз.

Будь-який вираз, що закінчується крапкою з комою, є оператором.

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

Приклади:

++ і;

Цей оператор представляє вираз, що збільшує значення змінної і на одиницю.

А = cos (b * 5);

Цей оператор представляє вираз, що включає в себе операції присвоювання і виклику функції.

А (х, у);

Цей оператор представляє вираз, що складається з виклику функції.

Порожній оператор.

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

- в операторах do, for, while, if у рядках, коли місце оператора не потрібно, але по синтаксису потрібен хоча б один оператор;

- при необхідності позначити фігурну дужку.

Синтаксис мови Сі вимагає, щоб після мітки обов'язково слідував оператор. Фігурна ж дужка оператором не є. Тому, якщо треба передати керування на фігурну дужку, необхідно використовувати порожній оператор.

Приклад:

int main ()

{

{if (...) goto a; /* перехід на дужку */

{... }

а:;}

return 0;

}

Складений оператор.

Складений оператор являє собою кілька операторів і повідомлень, укладених у фігурні дужки:

{ [повідомлення]

.

.

оператор; [оператор];

.

.

}

Наприкінці складеного оператора крапка з комою не ставиться.

Виконання складеного оператора полягає в послідовному виконанні складових його операторів.

Приклад:

int main ()

{

int q,b;

double t,d;

.

.

if(…) {

int e,g; double f,q;

.

.

}

return (0);

}

Змінні e, g, f, q будуть знищені після виконання складеного оператора. Відзначимо, що перемінна q є локальною в складеному операторі, тобто вона ніяким чином не зв'язана зі змінною q оголошеної на початку функції main з типом int. Відзначимо також, що вираз стоїть після return може бути укладений в круглі дужки, хоча наявність останніх необов'язкова.

Оператор if.

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

Узагальнена форма оператора має вигляд: