Стандартная библиотека C++ <cstdio>

<cstdio>Это заголовочный файл в стандартной библиотеке C++. Он содержит оболочку C++ для стандартной библиотеки ввода-вывода C и в основном используется для операций ввода-вывода файлов.

<cstdio>Библиотека определяет набор функций для выполнения операций ввода и вывода. Эти функции можно использовать для чтения и записи файлов и консоли.

Синтаксис

При использовании<cstdio>Перед использованием функций библиотеки необходимо подключить этот заголовочный файл в верхней части программы на C++:

#include <cstdio>

Общие функции

<cstdio>Библиотека содержит множество функций для файлового ввода-вывода. Ниже приведены некоторые часто используемые функции:

  • fopen: Открыть файл.
  • fclose: Закрыть файл.
  • fread: Считать данные из файла.
  • fwrite: Записать данные в файл.
  • fprintf: Записать форматированный вывод в файл.
  • fscanf: Считать форматированный ввод из файла.
  • fgetc: Считать символ из файла.
  • fputc: Записать символ в файл.
  • fgets: Считать строку из файла.
  • fputs: Записать строку в файл.

Пример

1. Открытие и закрытие файлов:

Пример

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w"); // Открыть файл для записи
    if (file == NULL) {
        perror("Ошибка файла");
        return 1;
    }
    fclose(file); // Закрыть файл
    return 0;
}

2. Запись данных в файл:

Пример

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w");
    if (file == NULL) {
        perror("Ошибка файла");
        return 1;
    }
    fprintf(file, "Hello, World!n");
    fclose(file);
    return 0;
}

Записано "Hello, World!" в файл "example.txt".

3. Чтение данных из файла:

Пример

#include <cstdio>
#include <iostream>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("Ошибка файла");
        return 1;
    }
    char buffer[100];
    while (fgets(buffer, 100, file) != NULL) {
        std::cout << buffer;
    }
    fclose(file);
    return 0;
}

Прочитать из файла "example.txt" и вывести "Hello, World!".

4. Используйте fscanf и fprintf для форматированного ввода и вывода:

Пример

#include <cstdio>

int main() {
    FILE *file = fopen("data.txt", "w");
    if (file == NULL) {
        perror("Ошибка файла");
        return 1;
    }
    fprintf(file, "%d %fn", 42, 3.14159);
    fclose(file);

    file = fopen("data.txt", "r");
    if (file == NULL) {
        perror("Ошибка файла");
        return 1;
    }
    int number;
    float pi;
    fscanf(file, "%d %f", &number, &pi);
    fclose(file);

    std::printf("Number: %d, Pi: %fn", number, pi);
    return 0;
}

Результат вывода:Number: 42, Pi: 3.141590

fopen и fclose

Используется для открытия и закрытия файлов.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        // Файловые операции
        fclose(file);
    } else {
        // Обработать ошибки
    }
    return 0;
}

fread и fwrite

Используется для чтения и записи данных из файлов и в файлы.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.bin", "wb");
    if (file) {
        int data = 12345;
        fwrite(&data, sizeof(data), 1, file);
        fclose(file);
    }
    return 0;
}

fseek и ftell

Используется для перемещения файлового указателя внутри файла и получения позиции файлового указателя.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        fseek(file, 0, SEEK_END); // Перейти в конец файла
        long size = ftell(file);  // Получить размер файла
        fclose(file);
    }
    return 0;
}

fflush

Сбросить файл, чтобы записать данные из буфера в файл.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!", file);
        fflush(file); // Убедиться, что данные немедленно записаны в файл
        fclose(file);
    }
    return 0;
}

printf и fprintf

Используется для форматированного вывода в стандартный вывод или файл.

Пример

#include <cstdio>

int main() {
    int value = 42;
    printf("Value: %d\n", value); // Вывод в стандартный вывод

    FILE* file = fopen("output.txt", "w");
    if (file) {
        fprintf(file, "Value: %d\n", value); // Вывод в файл
        fclose(file);
    }
    return 0;
}

scanf и fscanf

Используется для форматированного ввода из стандартного ввода или файла.

Пример

#include <cstdio>

int main() {
    int value;
    scanf("%d", &value); // Чтение из стандартного ввода

    FILE* file = fopen("input.txt", "r");
    if (file) {
        fscanf(file, "%d", &value); // Чтение из файла
        fclose(file);
    }
    return 0;
}

sprintf и sscanf

Используется для форматированного вывода в строку и чтения из строки.

Пример

#include <cstdio>

int main() {
    char buffer[50];
    int value = 42;
    sprintf(buffer, "Value: %d", value); // Вывод в строку

    int readValue;
    sscanf(buffer, "Value: %d", &readValue); // Чтение из строки

    return 0;
}

fgets и fputs

Используется для чтения строки из файла и записи строки в файл.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        char buffer[100];
        if (fgets(buffer, sizeof(buffer), file)) {
            // Чтение успешно
        }
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!\n", file); // Запись строки в файл
        fclose(file);
    }
    return 0;
}

getc и putc

Используется для чтения символов из файла и записи символов в файл.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c = getc(file); // Прочитать символ
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        putc('A', file); // Записать символ
        fclose(file);
    }
    return 0;
}

feof и ferror

Используется для обнаружения конца файла и ошибок файла.

Пример


#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        while (!feof(file)) {
            int c = getc(file);
            if (ferror(file)) {
                // Обработать ошибки
                break;
            }
            // Обработать символ
        }
        fclose(file);
    }
    return 0;
}

EOF

Указывает на флаг конца файла.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c;
        while ((c = getc(file)) != EOF) {
            // Обработать символ
        }
        fclose(file);
    }
    return 0;
}

NULL

Представляет нулевой указатель.

Пример

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file == NULL) {
        // Обработка ошибки открытия файла
    } else {
        fclose(file);
    }
    return 0;
}

Примечания

  • Использование<cstdio>При использовании библиотеки необходимо обеспечить правильную обработку открытия и закрытия файлов, чтобы избежать утечек ресурсов.
  • При использованииfopenПри использовании необходимо указать правильный путь к файлу и режим.
  • ИспользованиеfprintfиfscanfПри использовании строка формата должна соответствовать типам переменных.
Другие расширения