Функции библиотеки C -ungetc()
Стандартная библиотека C - <stdio.h>
Описание
Функции библиотеки Cint ungetc(int char, FILE *stream)Помещает символchar(беззнаковый символ) в указанный потокstreamтак, чтобы он стал следующим символом для чтения.
Объявление
Ниже приведено объявление функции ungetc().
int ungetc(int char, FILE *stream)
Параметр
- char-- Это символ, который нужно поместить. Этот символ передаётся как соответствующее значение int.
- stream-- Это указатель на объект FILE, который идентифицирует входной поток.
Возвращаемое значение
В случае успеха возвращает помещённый символ; в противном случае возвращает EOF, и поток остаётся неизменным.
Пример
Следующий пример демонстрирует использование функции ungetc().
Пример
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
char buffer [256];
fp = fopen("file.txt", "r");
if( fp == NULL )
{
perror("Ошибка файла");
return(-1);
}
while(!feof(fp))
{
c = getc (fp);
/* Заменить ! на + */
if( c == '!' )
{
ungetc ('+', fp);
}
else
{
ungetc(c, fp);
}
fgets(buffer, 255, fp);
fputs(buffer, stdout);
}
return(0);
}
int main ()
{
FILE *fp;
int c;
char buffer [256];
fp = fopen("file.txt", "r");
if( fp == NULL )
{
perror("Ошибка файла");
return(-1);
}
while(!feof(fp))
{
c = getc (fp);
/* Заменить ! на + */
if( c == '!' )
{
ungetc ('+', fp);
}
else
{
ungetc(c, fp);
}
fgets(buffer, 255, fp);
fputs(buffer, stdout);
}
return(0);
}
Предположим, у нас есть текстовый файлfile.txt, содержимое которого следующее. Этот файл будет использоваться в качестве входных данных в примере:
this is example !c standard library !library functions and macros
Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:
this is example +c standard library +library functions and macrosДругие расширения