
- •2. Основні елементи мови с
- •3.1 Алфавіт мови програмування
- •3.2Лексеми
- •3.3Ключові слова
- •3.4Ідентифікатори
- •3.5 Класифікація типів даних
- •3.6 Літерали
- •3.7 Оператори
- •3.8 Коментарі
- •3.9 Директиви препроцесора
- •3.10 Організація програми
- •3. Операції та вирази
- •4.1 Загальні відомості
- •4.2 Арифметичні операції
- •4.3 Операції приведення типів
- •(Тип) ідентифікатор,
- •4.4 Операції присвоєння
- •4.5 Операції інкремента і декремента
- •4.6 Операції порівняння
- •4.7 Операції зсуву
- •4.8 Порозрядні операції
- •4.9 Логічні операції
- •4.10 Операція sizeof
- •Sizeof ( Вираз ),
- •4.11 Операція послідовного обчислення
- •4.12 Операція умови (?:)
- •Операнд-1 ? Операнд-2 : Операнд-3
- •4.13 Адресні операції
- •Тип * ім'я_покажчика;
- •4. Прості типи даних
- •5.1 Оголошення змінних
- •[ Модифікатори ] тип ім’я_змінної;
- •5.2 Час існування та область видимості змінних
- •5.3 Цілі типи даних
- •5.4 Дійсні типи даних
- •5. Оператори керування
- •5.1 Оператор розгалуження if
- •If ( Вираз ) true-оператор;
- •5.2 Оператор розгалуження if-else
- •If ( Вираз ) true-оператор; else false-оператор;
- •5.3 Оператор множинного розгалуження switch
- •5.4 Оператор циклу for
- •For ( Вираз 1 ; Вираз 2 ; Вираз 3 ) тіло циклу
- •5.5 Оператор циклу while
- •While ( Вираз ) тіло циклу
- •5.6 Оператор циклу do while
- •Тіло циклу while ( Вираз ) ;
- •5.7 Оператор break
- •5.8 Оператор continue
- •6 Введення та виведення даних
- •7.1 Функція виведення printf
- •Int printf( стрічка форматування, змінна1, змінна2, ... );
- •7.2Функція введення scanf
- •Int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ... );
- •9.1 Введення та виведення у файл
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •Тип даних ім’я змінної [n];
- •7.3 Багатовимірні масиви
- •6. Функції
- •6.1 Основні поняття
- •{Тіло функції}
- •6.2 Область видимості
- •6.3 Порожній тип void
- •6.4 Передача аргументів у функцію
- •6.5 Рекурсивні функції
- •6.6 Прототипи функцій
- •8. Рядки в с
- •4.1 Прототипи
- •4.2 Функції перетворення буферів
- •4.3 Функції перевірки літер
- •4.4 Рядок символів
- •4.5 Операції з рядками:
- •4.6 Символьні константи
- •9. Покажчики
- •5.1 Визначення та ініціалізація покажчиків
- •5.2 Визначення покажчиків:
- •5.3 Масиви
- •5.6 Копіювання рядка
- •5.7 Посилання та оператор &
- •5.9 Посилання в якості результатів функції
- •5.10 Покажчики на функцію
- •Тип_функціі (* імя_покажчика) (специфікація_параметрів);
- •5.11 Покажчики на void
- •5.12 Арифметика покажчиків
- •10. Структури, об’єднання, перерахування
- •7.1 Структури
- •7.2 Ключове слово typedef
- •7.3 Об’єднання
- •7.4Перераховуваний тип (Enum)
- •Enum dataType
- •Enum day
- •11 Динамічне виділення пам'яті
7.2Функція введення scanf
Функція scanfзабезпечує введення даних з клавіатури. Для використання функціїscanf потрібно підключити бібліотеку <stdio.h>. Прототип функціїscanfнаступний:
Приклад 6. Синтаксисscanf
Int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ... );
Першим параметром функції scanfє стрічка форматування, інші параметри – адреси змінних, в які зчитуються дані.
Стрічка форматування функції scanfзаписується в подвійних лапках і містить список специфікаторів перетворення, які визначають типи змінних, в які будуть записані введені дані.
Специфікатори перетворення функції scanfнаведені в табл.7.3.
Таблиця 7.3 — Специфікатори перетворення для функції scanf
Специфікатор перетворення |
Призначення |
Тип даних |
%i |
Для введення цілих чисел зі знаком |
int,short,long |
%d |
Для введення цілих чисел зі знаком |
int,short, long |
%f |
Для введення дійсних чисел, в форматі числа з плаваючою точкою |
float, double |
%c |
Для введення символів |
char |
%s |
Для введення стрічки |
char [] |
При використанні функції scanfпотрібно слідкувати щоб специфікатори перетворення відповідали типам змінних, в які будуть записані зчитані з клавіатури дані.
Також потрібно пам’ятати ставити знак амперсанд (&)перед кожним ідентифікатором змінної в функціїscanf.
Приклад 7. Використання функції scanf.
int a, b;
char symbol;
scanf (“%i %i”, &a, &b); /* зчитування з клавіатури цілих чисел у змінні a та b */
scanf (“%c”, &symbol); /* зчитування з клавіатури символу у змінну symbol */
Задача 1.Написати програму яка буде зчитувати з клавіатури два числа та виводити на екран їх добуток та суму.
#include <stdlib.h>
#include <stdio.h>
int main()
{
int a, b;
printf ("Vvediyj dva chysla: ");
scanf ("%i %i", &a, &b);
printf ("Dobytok : %i \n", a * b);
printf ("Suma : %i \n", a + b);
system("PAUSE");
return 0;
}
Результат роботи програми:
Задача 2.Написати програму, яка буде запитувати у користувача його ім’я та після введення імені та натиснення клавішіEnterвиводити привітання.
#include <stdlib.h>
#include <stdio.h>
int main()
{
char name[10];
printf ("Vvediyj vashe im'ya: ");
scanf ("%s", name);
printf ("Hello %s!\n", name);
system("PAUSE");
return 0;
}
Результат роботи програми:
9.1 Введення та виведення у файл
Опис функцій роботи з файлами знаходиться в бібліотеці stdio.h.
Спочатку треба створити покажчик на змінну типу:
FILE (FILE * file);
Відкриття файлу здійснюється викликом функції
fopen (file = fopen (file_name, "w");)
Можна записувати відразу однією стрічкою:
FILE*file=fopen(file_name, "w");
Перший параметр цієї функції - ім'я файлу, другий - вказує в якому режимі повинен бути відкритий файл. "w" - відкрити для запису, "r" - відкрити для читання, "a" - доповнення файлу (це найбільш використовувані режими, хоча є й інші). Запис і зчитування даних з файлу здійснюється такими функціями: fputc, fputs, fgetc, fgets, fprintf, fscanf.
Закриття файлу здійснюється викликом функції fclose (fclose (file);).
НЕ ЗАБУВАЙТЕ ЗАКРИВАТИ ФАЙЛ!
Приклад 1. Зчитати з файлу input.txt всі дані, і перевірити, скільки раз повторюється перший символ. У вихідний файл output.txt записати цей символ. Потім знову відкрити файл output.txt для допису, і записати туди кількість повторів першого символу(рис. 9.1).
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char s,s1;
int i=0;
FILE*f=fopen("input.txt","rt");
if(f == NULL) {
perror("file not found");
system("PAUSE");
return EXIT_FAILURE;
}
fscanf(f,"%c", &s1);
while (!feof(f)){
fscanf(f,"%c", &s);
if (s==s1){
i++;
}
}
fclose(f);
FILE*fp=fopen("output.txt","w");
fprintf(fp, "%i\n", i);
fclose(fp);
FILE*ft=fopen("output.txt","a");
fprintf(ft, "%c", s1);
fclose(ft);
system("PAUSE");
return 0;
}
Рисунок 9.1 – Результат роботи програми
Приклад 2.Виведення різних типів даних.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define PI 3.1415926
int main(){
FILE*f=fopen("sempleout.txt","w");
int number=5, cost=11000, s=-777;
float bat=255, x=12.345;
fprintf (f, "%d студентів зїли%f бутербродів.\n", number, bat);
fprintf (f, "Значення числа pi рівне%f.\n", pi);
fprintf (f, "Вартість цієї машини %d%s\n", cost,"у.е");
fprintf (f, "x=%-8.4f s=%5d%8.2f ", x, s, x);
fclose(f);
return 0;
}
Результат роботи програми:
Детальнішу інформацію про введення\виведення даних дивіться у розділі 5.