Изучение функции fgetc() в C: чтение символов из файлов, стандартного ввода, строк и URL-адресов

Прототип функции для fgetc()на языке программирования C:

int fgetc(FILE *stream);

Функция fgetc()используется для чтения одного символа из файла. В качестве аргумента он принимает указатель на объект FILE, который представляет файл для чтения. Функция возвращает символ, прочитанный как значение intили EOF(конец файла), если достигнут конец файла или произошла ошибка.

Теперь давайте углубимся в различные способы использования fgetc()с примерами кода:

Метод 1. Чтение символов из файла до достижения конца

#include <stdio.h>
int main() {
    FILE *file;
    int character;
    file = fopen("myfile.txt", "r");
    if (file == NULL) {
        printf("Failed to open the file.\n");
        return 1;
    }
    while ((character = fgetc(file)) != EOF) {
        printf("%c", character);
    }
    fclose(file);
    return 0;
}

Этот фрагмент кода открывает файл с именем myfile.txtв режиме чтения и считывает из него символы до тех пор, пока не будет достигнут конец файла. Затем каждый символ выводится на консоль.

Метод 2. Чтение символов со стандартного ввода (клавиатура)

#include <stdio.h>
int main() {
    int character;
    printf("Enter characters (press Ctrl + D to stop):\n");
    while ((character = fgetc(stdin)) != EOF) {
        printf("%c", character);
    }
    return 0;
}

В этом примере программа считывает символы со стандартного ввода (клавиатуры) до тех пор, пока пользователь не сигнализирует об окончании ввода, нажав Ctrl + D (в Unix-подобных системах) или Ctrl + Z (в Windows).

Метод 3. Чтение символов из строки

#include <stdio.h>
#include <string.h>
int main() {
    char str[] = "Hello, World!";
    int character;
    size_t i;
    for (i = 0; i < strlen(str); i++) {
        character = fgetc(str);
        printf("%c", character);
    }
    return 0;
}

Здесь программа считывает символы из строки, завершающейся нулем (str), пока не будет достигнут конец строки. Затем каждый символ выводится на консоль.

Метод 4. Чтение символов из URL-адреса с помощью библиотеки curl

#include <stdio.h>
#include <curl/curl.h>
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
    FILE *file = (FILE *)userdata;
    return fwrite(ptr, size, nmemb, file);
}
int main() {
    CURL *curl;
    FILE *file;
    int character;
    file = fopen("output.txt", "w");
    if (file == NULL) {
        printf("Failed to create the output file.\n");
        return 1;
    }
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, file);
        curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    }
    rewind(file);  // Reset the file position indicator to the beginning
    while ((character = fgetc(file)) != EOF) {
        printf("%c", character);
    }
    fclose(file);
    return 0;
}

В этом примере показано чтение символов из URL-адреса с использованием библиотеки curl. Программа загружает содержимое веб-страницы по адресу « https://example.com » и сохраняет его в файл с именем «output.txt». Позже он считывает символы из файла и выводит их на консоль.

Это охватывает несколько методов использования функции fgetc()в C. Каждый метод позволяет вам читать символы из разных источников, таких как файлы, стандартный ввод, строки или URL-адреса. Вы можете выбрать метод, который соответствует вашим конкретным потребностям.