Разделы сайта:
Статьи по C и C++Стандартная библиотека CКнигиЮмор
Форматированный ввод-вывод

Часть 2. Потоки stdin и stdout

Функция printf (PRINT Formatted) предназначеня для форматированного вывода строки на экран. Для перехода на новую строку достаточно символа '\n'. Как правило, количество аргументов переменное, но так как синтаксис С не позволяет вызывать функцию, передавая ей бесконечно большое количество аргументов, то для написания собственных функций придется воспользоваться списком аргументов va_list и функцией vprintf. В стандарте C99 предусмотрена возможность использования va_list в макросах.

int printf(const char *format[, argument, ...]);
int wprintf(const wchar_t *format[, argument, ...]);
int vprintf(const char *format, va_list arglist);
int vwprintf(const wchar_t *format, va_list arglist);

Выводит строку format в поток stdout, учитывая все спецификаторы формата. Аналогично, функция scanf считывет данные, вводимые пользователем из потока stdin.

int scanf(const char *format[, address, ...]);
int wscanf(const wchar_t *format[, address, ...]);
int vscanf(const char *format, va_list arglist);

Главным отличием от printf является то, что в качестве необязательных аргументов scanf получает указатели.

Простой вывод строки осуществляется функцией puts (PUT String):

int puts(const char *s);
int _putws(const wchar_t *s);

Выводит строку s в поток стандартного вывода и добавляет символ новой строки.

Для того, чтобы вывести символ на экран следует использовать макрос putchar - он эквивалентен вывозову putc с параметром stdout.

Аналогично, предусмотрены функции getc и getchar. Функция gets считывает символы из потока stdin, пока не встретит EOL (End-Of-Line, конец строки), и добавляет в конец полученной строки нуль-терминатор. Количество вводимых символов не ограничено. Гораздо разумнее использовать fgets, ограничивающую ввод, передавая ей в качестве пара- метра stdin.

В С++ для вывода предусмотрен класс cout, а для ввода - cin. Для сравнения: C:

printf("%s wrote: %s","myaut","Hello, world");

C++:
std::cout<<"myaut"<<" wrote:"<"Hello, world";

НазадДальше
Автор и разработчик сайта - Кляус Сергей. Спасибо Форуму на Исходниках.RU за помощь в сборе материалов.
X