canf:
day, month, year; («% d /% d /% d», & month, & day, & year);
ігнорує пробілі и табуляцію в ланцюжкові формату. Більше того, вона пропускає пропуски и пробілі (пробілі, табуляцію, Нові рядки ТОЩО), розглядаючі ввід. Для прочитання введенню, чий формат НЕ є сталь, КРАЩИЙ буде читать по одному рядкові за раз, после чего Розбита его на окремі Частини помощью scanf. Наприклад, скажімо ми Хотіли бі Прочитати рядки, Які могут включать дату в одній з, наведення Вище, форм. У такому разі ми могли бі Написати
(getline (line, sizeof (line))> 0) {(sscanf (line, «% d% s% d», & day, monthname, & year) == 3) («valid:% s n», line);/* Форма 25 Dec 1988 * / if (sscanf (line, «% d /% d /% d», & month, & day, & year) == 3) («valid:% s n », line);/* Форма мм / дд / рр * / («invalid:% s n», line);/* Недійсна форма * /
}
Виклики scanf можна змішуваті з виклика других функцій вводу. Наступний виклик будь-якої ввідної Функції почнет з прочитання Першого знака, що не прочитаного scanf.
Останнє Попередження: аргументи scanf и sscanf повінні бу покажчики. Найчастішою помилки є написання
(«% d», n);
вместо («% d», & n);
Цю помилки, як правило, не буде виявлено во время компіляції.
Приклади, з Якими ми досі Стикана, УСІ читали стандартний ввід и запісувалі до стандартного виводу, Які автоматично візначаються для програми операційною системою.
Наступний кроком буде Написати програму, яка матіме доступ до файлу. Одна з програм, что демонструє необхідність таких операцій, це cat, яка зчеплює набор Вказаною їй файлів, віводячі їх на стандартний Пристрій виводу. cat вікорістовується для відруку файлів на екрані І як збирачів введенню загально призначення для програм, Які НЕ мают возможности доступу до файлів за іменем. Наприклад, команда
x. c y. c
виводу вміст файлів x. c та y. c (і Нічого больше) на стандартний Пристрій виводу. Питання в тому, як Забезпечити прочитання Даних файлів, тоб, як під'єднаті Зовнішні назви, про Які думає користувач, до Твердження, Яке читатиму дані.
Правила - Прості. Перед тім як его можна Прочитати або здійсніті до нього запис, файл нужно Відкрити помощью бібліотечної Функції fopen. fopen візьме Зовнішні назви, Такі як x. c або y. c, здійсніть певні Службові Дії и переговори з операційною системою (деталі якіх НЕ повінні нас хвілюваті), и повертає покажчик, Який вікорістовуватіметься в Наступний читані и запису до файлу.
цею покажчик, Який назівається покажчики файлу, вказує на структуру, яка містіть інформацію про файл, таку як Местоположение буфера, потокових положення знака в буфері, чи файл чітається, чі до нього Йде запис, І, чі Малі місце помилки або вказівнік кінця файлу. Користувачі НЕ повінні знаті подробіць, оскількі визначення, что знаходяться в включаються оголошення структурованих под назв FILE. Єдине, Що потрібно знаті, це оголошення покажчика файлу, Яке спрощена віглядає як
* fp; * fopen (char * name, char * mode);
Це означає, что fp є покажчики на (структуру типу) FILE и fopen пов...