Функция fgets в языке Си: общее описание и особенности использования
Функция fgets() является стандартной библиотечной функцией языков программирования С и С++ и используется для считывания строки символов из потока ввода.
Прототип функции fgets() выглядит следующим образом:
`char *fgets(char *str, int n, FILE *stream);`
где:
- `str` - указатель на массив символов, в который будут считаны данные.
- `n` - максимальное количество символов, которые могут быть считаны.
- `stream` - указатель на поток ввода, из которого будут считаны данные.
Функция fgets() считывает строки символов из потока ввода, пока не будет достигнут конец файла или пока не будет считано n - 1 символов. Если встречается символ новой строки (переноса строки), он также считывается и сохраняется в исходной строке.
Пример использования функции fgets() для считывания строки символов из стандартного потока ввода (клавиатура):
c
#include
int main()
{
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
printf("You entered: %s", str);
return 0;
}
В этом примере мы объявляем массив символов `str` размером 100 и считываем строку символов из стандартного потока ввода (stdin) в этот массив с помощью функции fgets(). Затем мы выводим введенную строку на экран.
Также, функция fgets() может быть использована для чтения строк из файлов. В следующем примере мы открываем файл "input.txt" в режиме чтения и считываем строку символов из него с помощью функции fgets():
c
#include
int main()
{
char str[100];
FILE *fp;
fp = fopen("input.txt", "r");
if(fp == NULL)
{
printf("Error opening file\n");
return -1;
}
fgets(str, sizeof(str), fp);
printf("You entered: %s", str);
fclose(fp);
return 0;
}
В этом примере мы обрабатываем ошибки, открыв файл "input.txt" с помощью функции fopen() и проверив, что указатель на файл fp не является NULL. Затем мы считываем строку символов из файла в массив str с помощью функции fgets() и выводим ее на экран. Наконец, мы закрываем файл с помощью функции fclose().