Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

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.

Соседние файлы в папке Архив WinRAR