Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" G "

getc 

getchar 

gets 

getw 

getwd 

get_current_dir_name 

gmtime 

gmtime_r 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

getc – чтение одного байта из указанного потока данных.

Синтаксис:

#include < stdio.h >
int getc (FILE *stream);

Аргументы:

stream – указатель на поток данных.

Возвращаемое значение:

В случае успешного чтения байта возвращается код считанного байта (символа)

Если достигнут конец файла, то возвращается EOF и устанавливается признак конца файла.

Если при чтении байта произошла ошибка, то возвращается EOF, а переменной errno присваивается код ошибки.

Описание:

Макрос getc считывает один байт из указанного аргументом stream потока данных.

Если достигнут конец файла или при чтении файла произошла ошибка возвращается код EOF (обычно -1). Для того, чтобы отличить конец файла от ошибки используются функции feof и ferror.

Макрос getc аналогичен функции fgetc.

Пример:

В примере из заранее созданного файла test.txt, располагающегося в одной папке с программой, считываются данные с помощью макроса getc пока не будет достигнут конец файла. В файле заранее сохранена строка: «тест чтения». Считанные данные и отчет о работе выводятся на консоль


#include < stdio.h >  //Для printf, getc, fopen, fclose, feof

int main (void)
{    
   // Переменная, в которую будет помещен указатель 
   // на созданный поток данных 
   FILE *mf;
   // Переменная, в которую поочередно будут помещаться считываемые байты
   int sym;

   // Открытие файла с режимом доступа «только чтение»  
   // и привязка к нему потока данных
   printf (“Открытие файла: ”);
   mf = fopen (“test.txt”,”r”);

   // Проверка открытия файла
   if (mf == NULL) {printf (“ошибка\n”); return -1;}
   else printf (“выполнено\n”);

   printf (“Коды считанных символов:\n”);

   // Чтение (побайтно) данных из файла в бесконечном цикле
   while (1)
   {
      // Чтение одного байта из файла
      sym = getc (mf);

      // Проверка на конец файла или ошибку чтения
      if (sym == EOF)
      {
         // Проверяем что именно произошло: кончился файл
         // или это ошибка чтения
         if (feof (mf) != 0)
         {  
            // Если файл закончился, выводим сообщение о завершении 
            // чтения и выходим из бесконечного цикла
            printf (“\nЧтение файла закончено\n”);
            break;
         }
         else
         {
            // Если при чтении произошла ошибка, выводим сообщение
            // об ошибке и выходим из бесконечного цикла
            printf (“\nОшибка чтения из файла\n”);
            break;
         }
      }
      // Если файл не закончился, и не было ошибки чтения 
      // выводим код считанного символа на экран
      printf (“%d ”,sym);
   }
   // Закрываем файл
   printf (“Закрытие файла: ”);
   if ( fclose (mf) = EOF) printf (“ошибка\n”);
   else printf (“выполнено\n”);

   return 0;
}

Результат:

Открытие файла: выполнено
Коды считанных символов:
212 197 211 212 32 222 212 197 206 201 209
Чтение файла закончено
Закрытие файла: выполнено



Смотри так же:

fgetc
fgets
fputc
fputs
getc
getchar
gets
getw
printf
putc
puts
putchar
putw
ungetc


Яндекс.Метрика

Рейтинг@Mail.ru