C++-Standardbibliothek <cstdio>

<cstdio>Es ist eine Header-Datei in der C++-Standardbibliothek. Sie enthält den C++-Wrapper der C-Standard-E/A-Bibliothek und wird hauptsächlich für Datei-Eingabe- und -Ausgabeoperationen verwendet.

<cstdio>Die Bibliothek definiert eine Reihe von Funktionen zur Durchführung von Eingabe- und Ausgabeoperationen. Diese Funktionen können zum Lesen und Schreiben von Dateien und der Konsole verwendet werden.

Syntax

Bei Verwendung<cstdio>Bevor Sie die Funktionen der Bibliothek verwenden, müssen Sie diese Header-Datei am Anfang des C++-Programms einbinden:

#include <cstdio>

Häufig verwendete Funktionen

<cstdio>Die Bibliothek enthält viele Funktionen für Datei-E/A. Die folgenden sind einige häufig verwendete Funktionen:

  • fopen: Datei öffnen.
  • fclose: Datei schließen.
  • fread: Daten aus einer Datei lesen.
  • fwrite: Daten in eine Datei schreiben.
  • fprintf: Formatierte Ausgabe in eine Datei schreiben.
  • fscanf: Formatierte Eingabe aus einer Datei lesen.
  • fgetc: Ein Zeichen aus einer Datei lesen.
  • fputc: Ein Zeichen in eine Datei schreiben.
  • fgets: Eine Zeile aus einer Datei lesen.
  • fputs: Eine Zeile in eine Datei schreiben.

Beispiel

1. Dateien öffnen und schließen:

Beispiel

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w"); // Datei zum Schreiben öffnen
    if (file == NULL) {
        perror("Fehler beim Öffnen der Datei");
        return 1;
    }
    fclose(file); // Datei schließen
    return 0;
}

2. Daten in eine Datei schreiben:

Beispiel

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w");
    if (file == NULL) {
        perror("Fehler beim Öffnen der Datei");
        return 1;
    }
    fprintf(file, "Hallo, Welt!n");
    fclose(file);
    return 0;
}

Schrieb "Hallo, Welt!" in die Datei "example.txt".

3. Daten aus einer Datei lesen:

Beispiel

#include <cstdio>
#include <iostream>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("Fehler beim Öffnen der Datei");
        return 1;
    }
    char buffer[100];
    while (fgets(buffer, 100, file) != NULL) {
        std::cout << buffer;
    }
    fclose(file);
    return 0;
}

Lesen Sie aus der Datei "example.txt" und geben Sie "Hello, World!" aus.

4. Verwenden Sie fscanf und fprintf für formatierte Eingabe und Ausgabe:

Beispiel

#include <cstdio>

int main() {
    FILE *file = fopen("data.txt", "w");
    if (file == NULL) {
        perror("Fehler beim Öffnen der Datei");
        return 1;
    }
    fprintf(file, "%d %fn", 42, 3.14159);
    fclose(file);

    file = fopen("data.txt", "r");
    if (file == NULL) {
        perror("Fehler beim Öffnen der Datei");
        return 1;
    }
    int number;
    float pi;
    fscanf(file, "%d %f", &number, &pi);
    fclose(file);

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

Ausgabeergebnis:Number: 42, Pi: 3.141590

fopen und fclose

Wird zum Öffnen und Schließen von Dateien verwendet.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        // Dateioperationen
        fclose(file);
    } else {
        // Fehler behandeln
    }
    return 0;
}

fread und fwrite

Wird zum Lesen und Schreiben von Daten aus und in Dateien verwendet.

Beispiel

#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 und ftell

Wird verwendet, um den Dateizeiger in einer Datei zu bewegen und die Position des Dateizeigers zu ermitteln.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        fseek(file, 0, SEEK_END); // Zum Dateiende springen
        long size = ftell(file);  // Dateigröße ermitteln
        fclose(file);
    }
    return 0;
}

fflush

Den Dateistream leeren, um die Daten im Puffer in die Datei zu schreiben.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!", file);
        fflush(file); // Sicherstellen, dass Daten sofort in die Datei geschrieben werden
        fclose(file);
    }
    return 0;
}

printf und fprintf

Wird für formatierte Ausgabe an die Standardausgabe oder eine Datei verwendet.

Beispiel

#include <cstdio>

int main() {
    int value = 42;
    printf("Value: %d\n", value); // Ausgabe an die Standardausgabe

    FILE* file = fopen("output.txt", "w");
    if (file) {
        fprintf(file, "Value: %d\n", value); // Ausgabe in eine Datei
        fclose(file);
    }
    return 0;
}

scanf und fscanf

Wird für formatierte Eingabe von der Standardeingabe oder einer Datei verwendet.

Beispiel

#include <cstdio>

int main() {
    int value;
    scanf("%d", &value); // Von der Standardeingabe lesen

    FILE* file = fopen("input.txt", "r");
    if (file) {
        fscanf(file, "%d", &value); // Aus Datei lesen
        fclose(file);
    }
    return 0;
}

sprintf und sscanf

Wird für formatierte Ausgabe in eine Zeichenkette und zum Lesen aus einer Zeichenkette verwendet.

Beispiel

#include <cstdio>

int main() {
    char buffer[50];
    int value = 42;
    sprintf(buffer, "Value: %d", value); // Ausgabe in Zeichenkette

    int readValue;
    sscanf(buffer, "Value: %d", &readValue); // Aus Zeichenkette lesen

    return 0;
}

fgets und fputs

Wird verwendet, um eine Zeichenkette aus einer Datei zu lesen und eine Zeichenkette in eine Datei zu schreiben.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        char buffer[100];
        if (fgets(buffer, sizeof(buffer), file)) {
            // Lesen erfolgreich
        }
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!\n", file); // Zeichenkette in Datei schreiben
        fclose(file);
    }
    return 0;
}

getc und putc

Wird verwendet, um Zeichen aus einer Datei zu lesen und Zeichen in eine Datei zu schreiben.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c = getc(file); // Ein Zeichen lesen
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        putc('A', file); // Ein Zeichen schreiben
        fclose(file);
    }
    return 0;
}

feof und ferror

Wird verwendet, um Dateiende und Dateifehler zu erkennen.

Beispiel


#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        while (!feof(file)) {
            int c = getc(file);
            if (ferror(file)) {
                // Fehler behandeln
                break;
            }
            // Zeichen verarbeiten
        }
        fclose(file);
    }
    return 0;
}

EOF

Gibt das Dateiende-Flag an.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c;
        while ((c = getc(file)) != EOF) {
            // Zeichen verarbeiten
        }
        fclose(file);
    }
    return 0;
}

NULL

Stellt einen Nullzeiger dar.

Beispiel

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file == NULL) {
        // Fehler beim Öffnen der Datei behandeln
    } else {
        fclose(file);
    }
    return 0;
}

Hinweise

  • Nutzung<cstdio>Bei der Verwendung der Bibliothek müssen Sie sicherstellen, dass das Öffnen und Schließen von Dateien korrekt behandelt wird, um Ressourcenlecks zu vermeiden.
  • Bei VerwendungfopenBei der Verwendung müssen Sie den korrekten Dateipfad und Modus angeben.
  • NutzungfprintfundfscanfBei der Verwendung sollte die Formatzeichenfolge mit den Variablentypen übereinstimmen.
Weitere Erweiterungen