Ми розглянемо групу споріднених програм для опрацьовування символьних даних. Ви зрозумієте пізніше, що багато програм — це просто розширені версії прототипів, які ми обговорюватимемо тут.
Модель вводу та виводу, підтримувана стандартною бібліотекою, — досить проста. Текстовий ввід або вивід, незалежно від того звідки він походить або куди направлено, розглядається як потік знаків. Текстовий потік — це послідовність знаків, розділених на рядки, де кожний рядок складається з нуля або більше символів з наступним знаком нового рядка. Це залишається відповідальністю бібліотеки — добитися того, щоб кожний потік вводу або виводу відповідав цій моделі. C-програміст не повинен перейматись тим, як представлені рядки поза межами програми.
Стандартна бібліотека передбачає декілька функцій читання по одному знаку за раз, з якихgetchar і putchar являються найпростішими. Кожний раз як її викликано, getchar зчитує наступний введений знак із текстового потоку та повертає цей знак як власне значення. Тобто, після
c = getchar();
змінна c міститиме наступний знак вводу. Знаки, як правило, надходять з клавіатури; ввід з файлів ми обговоримо в Розділі 7.
Функція putchar виводить один знак кожного разу як її викликано:
putchar(c);
виводить як знак вміст цілочисельної змінної c; типово вивід надходить на екран. Викликиputchar і printf можна чергувати; вивід з'являтиметься в тій послідовності, в якій здійснено виклики.