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

10.2Функція введення scanf

Функція scanf забезпечує введення даних з клавіатури. Для використання функції scanf потрібно підключити бібліотеку <stdio.h

Синтаксис scanf:

int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ...);

Першим параметром функції scanf є стрічка форматування, інші параметри – адреси змінних, в які зчитуються дані.

Стрічка форматування функції scanf записується в подвійних лапках і містить список специфікаторів перетворення, які визначають типи змінних, в які будуть записані введені дані.

Специфікатори перетворення функції scanf наведені в табл. 10.3.

Таблиця 10.3 – Специфікатори перетворення для функції scanf

Специфікатор перетворення

Призначення

Тип даних

%i

Для введення цілих чисел зі знаком

int, short, long

%d

Для введення цілих чисел зі знаком

int, short, long

%f

Для введення дійсних чисел, в форматі числа з плаваючою точкою

float, double

%c

Для введення символів

char

%s

Для введення стрічки

char []

При використанні функції scanf потрібно слідкувати щоб специфікатори перетворення відповідали типам змінних, в які будуть записані зчитані з клавіатури дані.

Також потрібно пам’ятати ставити знак амперсанд (&) перед кожним ідентифікатором змінної в функції scanf.

Приклад 10.4. Використання функції 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;

}

Результат роботи програми:

10.3 Введення та виведення у файл

Опис функцій роботи з файлами знаходиться в заголовочному файлі “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);

Приклад 10.5. Виведення у файл різних типів даних.

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

#define PI 3.1415926

int main()

{

FILE*f=fopen("D:\\output.txt","w");

int n_stud=5, n_sand=255, cost=11000, s=-777;

float x=12.345;

fprintf (f, "%d students ate % d sandwiches.\n", n_stud,

n_sand);

fprintf (f, "The value of pi equal %f.\n", PI);

fprintf (f, "The cost of this car %d%s\n", cost," $");

fprintf (f, "x=%-8.4f s=%5d%8.2f ", x, s, x);

fclose(f);

return 0;

}

Рисунок 10.2 – Результат роботи програми

Приклад 10.6. Зчитати з файлу input.txt дані, і перевірити, скільки разів повторюється перший символ. У вихідний файл output.txt записати цей символ. Потім знову відкрити файл output.txt і дописати кількість повторів першого символу (рис. 10.3).

#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;

}

Рисунок 10.3 – Результат роботи програми

Контрольні запитання

  1. Для чого використовується функція printf?

  2. Опишіть синтаксис функції printf.

  3. Що таке стрічка форматування?

  4. Що таке специфікатори перетворення?

  5. Наведіть приклади специфікаторів перетворення.

  6. Що повертає функція printf?

  7. Що таке специфікатор перетворення?

  8. Що таке керуюча послідовність?

  9. Наведіть приклади керуючих послідовностей.

  10. Для чого використовується функція scanf?

  11. Опишіть синтаксис функції scanf.

  12. Для чого потрібно ставити знак амперсенд перед кожним ідентифікатором змінної в функції scanf?

  13. Напишіть програму, яка буде виводити різнотипні дані, використовуючи функцію printf тільки 1 раз.

  14. Напишіть програму, яка зчитуватиме двовимірний масив 10х10 цілих чисел.

  15. Напишіть програму, яка виводитиме 5 довільних чисел через пробіл та в стовпчик в залежності від введеного користувачем числа 1 чи 2.

  16. Напишіть програму, яка виводитиме на зчитуватиме 9 чисел (кожне число більше 0 і менше 100), а потім виводитиме їх у вигляді таблиці 3х3 так, щоб стовпчики були рівними.

  17. Для чого потрібно введення-виведення у файл?

  18. Опишіть функцію fopen.

  19. Наведіть приклади функції запису у файл.

  20. Напишіть програму, яка зчитуватиме з файлу input.txt слово, перевірятиме, чи є воно у файлі output.txt, і у разі його відсутності додаватиме його у кінець файлу output.txt.

  21. Напишіть програму, яка зчитуватиме з файлу input.txt слово, перевірятиме, чи є воно у файлі output.txt, і у разі його відсутності додаватиме його у файл output.txt в алфавітному порядку.

  22. Написати програму, що виконує наступні дії:

  • введеня з клавіатури даних в масив, що складається з 10 структур типу STUDENT;

  • записи повинні бути упорядковані по номеру групи;

  • вивід на дисплей прізвищ і номерів груп, включених у масив, якщо середній бал не більше 4.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]