Ми вже використовували раніше функцію scanf () і формат% s для зчитування рядка. Основна відмінність між scanf () і gets () полягає в тому, як вони визначають, що досягли кінця рядка: scanf () призначена швидше для отримання слова, а не рядки. Функція gets (). як ми вже бачили, приймає всі символи до тих пір, поки нс зустріне перший символ "новий рядок". Функція scanf () має два варіанти. Для будь-якого з них рядок починається з першого стрічного непорожньої символу. Якщо ви використовуєте формат% s. рядок триває до (але не включаючи) наступного порожнього символу (пробіл, табуляція або новий рядок). Якщо ви визначаєте розмір поля як% 10s. то функція scanf () вважає нe більше 10 символів або ж вважає до будь-якого прийшов першим порожнього символу.
Функція scanf () повертає ціле значення, яка дорівнює кількості вва працьованих символів, якщо введення пройшов Успіння, або символ EОF. її він зустрівся.
/ * Scanf () і підрахунок кількості * /
static char name1 [40], name2 [11];
printf ( "Введіть, будь ласка, 2 імені.");
count = scanf ( "% s% 10s", name1, name2);
printf ( "Я вважав. імен% s і% s.", count, name1, name2);
Ось два приклади роботи програми:
Введіть, будь ласка, два імені.
Я вважав два імені
Джсссіка і Джукс.
Введіть, будь ласка, 2 імені.
Я вважав 2 імені Ліза і Апплеботтхем.
У другому прикладі були лічені тільки перші 10 символів від Апплеботтхем, так як ми використовували формат% 10s.
Якщо ви отримуєте тільки текст з клавіатури, краще застосовувати, функцію gets (). Вона простіше у використанні, швидше і більш компактна. Функція scanf () призначена в основному для введення суміші типів даних в деякій стандартній формі. Наприклад, якщо кожна вводиться рядок містить найменування інструменту, кількість його на складі та вартість кожного інструменту, ви можете використовувати функцію scanf () або можете створити свою власну функцію, яка виконує перевірку деяких помилок при введенні.
Поділіться на сторінці
Схожі глави з інших книг
31.5. Функція ioctl Говорячи про потоках, ми знову повертаємося до функції ioctl, яка вже була описана в главі 17. # include
Функція sem_open У лістингу 10.22 наведено текст функції sem_open, яка створює новий семафор або відкриває существующій.Лістінг 10.22. Функція sem_open // my_pxsem_fifo / sem_open.с1 #include "unpipc.h" 2 #include "semaphore.h" 3 #include
Функція SUM з'явилася можливість поскаржитися в підведенні підсумків не обмежені простим підрахунком записів. Використовуючи функцію SUM, можна генерувати підсумкові результати для всіх повертаються записів по будь-яким числовим полях. Наприклад, для створення запиту, який генерує підсумки по
4. Символьні рядки директива #define, функції printf () і scanf () В цьому розділі ми продовжимо нашу "гру" з даними покопаємось в питаннях, що виходять за межі тих, які були пов'язані з типами даних, і розглянемо символьний рядок Спочатку опи шем важливий засіб мови -
ВИВЧЕННЯ І ВИКОРИСТАННЯ ФУНКЦІЙ printf () І scanf () Функції printf () і scanf () дають нам можливість взаємодіяти з програмою. Ми називаємо їх функціями введення-виведення. Це не єдині функції, якими ми можемо скористатися для введення і виведення даних за допомогою
Застосування функції scanf () Оскільки в подальшому ми будемо користуватися функція scanf () лише епізодично, ми розглянемо тут тільки основні особливості її застосування. Так само як для функції printf (), для функції scanf () вказуються керуюча рядок і наступний за
Функція uni () Пошук / заміна символу по його Юнікодние номеру також може бути зроблена за допомогою функції uni (). Приклад функції uni (): Boouni (107,32) Designer знайде слово Book
Функція uni () Пошук / заміна символу по його Юнікодние номеру також може бути зроблена за допомогою функції uni (). Приклад функції uni (): Boouni (107,32) Designer знайде слово Book
Хеш-функція. Ще одна важлива перевага використання PGP полягає в тому, що PGP застосовує так звану «хеш-функцію», яка діє таким чином, що в тому випадку будь-яких змін інформації, нехай навіть на один біт, результат «хеш-функції» буде зовсім
Функція uni () Пошук / заміна символу по його Юнікодние номеру також може бути зроблена за допомогою функції uni (). Приклад функції uni (): Boouni (107,32) Designer знайде слово Book
Хеш-функція Однак описана вище схема має ряд істотних недоліків. Вона вкрай повільна і виробляє занадто великий обсяг даних - щонайменше вдвічі більше обсягу вихідної інформації. Поліпшенням такої схеми стає введення в процес перетворення