fgets() функция языка Си. Чтение строки из файла или с клавиатуры.

Производит чтение строки из файла или клавиатуры. Чтение идет до конца строки либо файла. Функция fgets() обеспечивает безопасное чтение из стандартного потока, вместо небезопасных scanf() или gets().


#include <stdio.h>
char * fgets( char * string, int num, FILE * filestream );
string - указатель на буфер в который будет записана считанная строка
num - максимальная длина записанной строки (включая завершающий нулевой символ)
filestream - указатель на FILE с которого будет чтение, если это стандартный поток (ввод с клавиатуры) - то нужно использовать ключевое слово stdin
Возвращаемое значение - при ошибке NULL

Пример чтения строки вводимой с клавиатуры


#include <stdio.h> //printf(), fgets()
int main(){
    const int STR_SIZE = 100; // Максимальная длина строки
    char str[STR_SIZE]; // Целочисленная переменная
    char ret_str[STR_SIZE]; // Целочисленная переменная
    printf("Enter string \n"); // Приглашение к вводу числа
    fgets(str, STR_SIZE, stdin); // Ввод строки (для чтения из стандартного потока используем идентификатор stdin)
    printf("%s %p\n", str, &str); // Вывод введенной строки
    printf("%s %p\n", ret_str, &ret_str); // Вывод возвращенной строки
}

Пример чтения строки из файла. Не заработало с флагами w и a в fopen()


#include <stdio.h> // printf(), fprintf(), fopen(), fclose()
int main(){
    FILE *fp = fopen("1.txt", "r"); // Открываем файл 1.txt для чтения (рядом с исполняемым файлом)
    if(fp == NULL){ // Проверяем что файл открылся
        printf("File not open! \n");
    }else{
        char buf[40] = {0}; // Создаем буфер для записи и заполняем нулями
        fgets(buf, 7, fp); // Читаем строку из файла с ограничением длины до 7 символов
        printf("buf = %s \n", buf); // "buf = Hi Vic" в файле была строка Hi Victor!!!
        fclose(fp); // Закрываем файл
    }
}
2023-03-14



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

fclose() функция языка Си. Закрывает файл для записи или чтения.
feof() функция языка Си. Проверка на достижение конца файла.
fgets() функция языка Си. Чтение строки из файла или с клавиатуры.
fopen() функция языка Си. Открытие файла для чтения или записи.
fread Си, чтение из файла Си
fwrite() функция языка Си. Запись в файл заданного числа байт.