int scanf (const char *format, ...);
scanf(...) делает то же, что и fscanf (stdin, ...).
int sscanf (const char *s, const char *format, ...);
sscanf(s, ...) делает то же, что и scanf (...), только ввод символов осуществляет из строки s .
Таблица B-2. Преобразования scanf
Символ |
Данные на вводе; тип аргумента |
d |
десятичное целое; int * |
i |
целое: int *. Целое может быть восьмеричным (с нулем слева) или шестнадцатеричным (с 0x или 0X слева) |
o |
восьмеричное целое (с нулем слева или без него); int * |
u |
беззнаковое десятичное целое; unsigned int * |
x |
шестнадцатеричное целое (с 0x или 0X слева или без них): int * |
c |
символы, char *. Символы ввода размещаются в указанном массиве в количестве, заданном шириной поля; по умолчанию это количество равно 1. Символ'\0' не добавляется. Символы-разделители здесь рассматриваются как обычные символы и поступают в аргумент. Чтобы прочесть следующий символ-разделитель, используйте %1s |
s |
строка символов, отличных от символов-разделителей (записывается без кавычек); char *, указывающий на массив размера достаточного, чтобы вместить строку и добавляемый к ней символ '\0' |
e, f, g |
число с плавающей точкой; float *. Формат ввода для float состоит из необязательного знака, строки цифр, возможно с десятичной точкой, и необязательного порядка, состоящего из Eили eи целого, возможно со знаком |
p |
значение указателя в виде, в котором printf ("%р") его напечатает; void * |
n |
записывает в аргумент число символов, прочитанных к этому моменту в этом вызове; int *. Никакого чтения ввода не происходит. Счетчик числа введенных элементов не увеличивается |
[...] |
выбирает из ввода самую длинную непустую строку, состоящую из символов, заданных в квадратных скобках: char *. В конец строки добавляется '\0'. Спецификатор вида []...]включает ]в задаваемое множество символов |
[^...] |
выбирает из ввода самую длинную непустую строку, состоящую из символов, не входящих в заданное в скобках множество. В конец добавляется '\0'. Спецификатор вида [^]...]включает ]в задаваемое множество символов |
% |
обычный символ %; присваивание не делается |
B1.4. Функции ввода-вывода символов
int fgetc(FILE *stream);
fgetcвозвращает следующий символ из потока stream в виде unsigned char (переведенную в int ) или EOF, если исчерпан файл или обнаружена ошибка.
char *fgets(char *s, int n, FILE *stream);
fgetsчитает не более n-1 символов в массив s , прекращая чтение, если встретился символ новой строки, который включается в массив; кроме того, записывает в массив '\0'. Функция fgets возвращает s или, если исчерпан файл или обнаружена ошибка, NULL.
int fputc(int с, FILE *stream);
fputcпишет символ c (переведенный в unsigned char ) в stream . Возвращает записанный символ или EOF в случае ошибки.
int fputs(const char *s, FILE *stream);
fputsпишет строку s (которая может не иметь '\n' ) в stream ; возвращает неотрицательное целое или EOF в случае ошибки.
int getc(FILE *stream);
getcделает то же, что и fgetc , но в отличие от последней, если она - макрос, stream может браться более одного раза.
int getchar(void);
getchar() делает то же, что getc (stdin).
char *gets(char *s);
getsчитает следующую строку ввода в массив s , заменяя символ новой строки на '\0'. Возвращает s или, если исчерпан файл или обнаружена ошибка, NULL.
int putc(int с, FILE *stream);
putcделает то же, что и fputc , но в отличие от последней, если putc - макрос, значение stream может браться более одного раза.
int putchar(int c);
putchar(c) делает тоже, что putc (c, stdout).
int puts(const char *s);
putsпишет строку s и символ новой строки в stdout . Возвращает EOF в случае ошибки, или неотрицательное значение, если запись прошла нормально.
int ungetc(int с, FILE *stream);
ungetcотправляет символ c (переведенный в unsigned char ) обратно в stream ; при следующем чтении из stream он будет получен снова. Для каждого потока вернуть можно не более одного символа. Нельзя возвращать EOF. В качестве результата ungetc выдает отправленный назад символ или, в случае ошибки, EOF.
Читать дальше