Работа с fgets в языке программирования С
fgets - это функция в языке программирования C, которая позволяет считывать строки из файлов или стандартного ввода. Она является частью стандартной библиотеки языка C (stdio.h) и предоставляет очень удобный способ считывания текстовых данных.
Синтаксис функции fgets выглядит следующим образом:
char *fgets(char *str, int n, FILE *stream);
str:указатель на массив символов, в который будет сохраняться считанная строка.n:максимальное количество символов, которое может быть считано.stream:указатель на файловый поток, из которого будет производиться считывание.
Функция fgets считывает строку из указанного файла или стандартного ввода и сохраняет ее в переменную str. Однако, есть несколько важных моментов, которые необходимо учитывать при использовании данной функции.
Во-первых, fgets считывает символы, пока не достигнет максимального числа символов (n-1) или не встретит символ новой строки ('\n'). Символ новой строки также будет сохранен вместе с считанной строкой. Если указанный файл или стандартный ввод не содержат символ новой строки или достигли конца файла, то fgets считает это как успешное выполнение и возвращает считанную строку. Если текущая строка содержит больше символов, чем n-1, то fgets сохранит только первые n-1 символов и добавит нулевой символ (terminating null).
Давайте рассмотрим примеры использования fgets:
#include <stdio.h>
int main() {
char str[100];
// Считываем строку из стандартного ввода (клавиатуры)
printf("Введите строку: ");
fgets(str, sizeof(str), stdin);
// Выводим считанную строку на экран
printf("Вы ввели: %s", str);
return 0;
}
В этом примере мы объявляем массив символов str размером 100, в который будет сохраняться считанная строка. Затем с помощью fgets мы считываем строку из стандартного ввода (клавиатуры) и сохраняем ее в массив str. Затем мы выводим считанную строку на экран с помощью printf.
Теперь представим, что у нас есть текстовый файл с именем "input.txt", содержащий следующие строки:
Строка 1
Строка 2
Строка 3
Мы можем использовать fgets для считывания строк из этого файла:
#include <stdio.h>
int main() {
FILE *fp;
char str[100];
// Открываем файл в режиме чтения
fp = fopen("input.txt", "r");
// Считываем строки из файла
while (fgets(str, sizeof(str), fp) != NULL) {
printf("%s", str);
}
// Закрываем файл
fclose(fp);
return 0;
}
В этом примере мы объявляем указатель на файловую структуру fp и массив символов str, как и ранее. Затем мы открываем файл "input.txt" в режиме чтения с помощью функции fopen и связываем его с fp. Затем мы используем цикл while и функцию fgets для считывания строк из файла. Когда fgets достигает конца файла, он возвращает NULL, что прерывает цикл.
Это лишь несколько примеров использования функции fgets в языке программирования C. Она является очень полезным инструментом для считывания строк и текстовых данных из файлов или стандартного ввода, и может быть использована вместе с другими функциями и конструкциями языка C для выполнения различных задач.