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
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
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 <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
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
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
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
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
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
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
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
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
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
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
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
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 Verwendung
fopenBei der Verwendung müssen Sie den korrekten Dateipfad und Modus angeben. - Nutzung
fprintfundfscanfBei der Verwendung sollte die Formatzeichenfolge mit den Variablentypen übereinstimmen.