char array in Text Datei speichern und Speicherort angeben



  • Hallo

    Ich habe zwei Fragen:

    1.) Ich habe ein char array und möchte dies in eine Textdatei speichern, welche neu erstellt wird, falls die Datei nicht existiert und eine vorhandene überschreibt, falls sie existiert. Wie ist dies in C realisierbar?

    2.) Bei der Erstellung der Textdatei, oder dem Überschreiben muss ja bestimmt ein Dateipfad auf meinem System angegeben werden, wo diese Datei sein soll. Wie kann ich in C sagen, dass es in dem Ordner suchen soll, in welchem das C Programm ausgeführt wird?

    Danke für die Hilfe
    Grüße



  • So koennte man das machen:

    #include <stdio.h>
    
    int main() {
    	FILE *fp;
    	char text[] = "Dies ist das Array.";
    
    	if((fp = fopen("test.txt", "w+")) == NULL) 
    		printf("konnte Datei nicht oeffnen.\n");
    	else {
    		fprintf(fp, "%s", text);
            fclose(fp);
        }
    	return 0;
    }
    


  • Wenn ich keinen Pfad angebe, wird das Arbeitsverzeichnis verwendet.



  • Herbststurm schrieb:

    1.) Ich habe ein char array und möchte dies in eine Textdatei speichern, welche neu erstellt wird, falls die Datei nicht existiert und eine vorhandene überschreibt, falls sie existiert. Wie ist dies in C realisierbar?

    Das passiert ganz automatisch, wenn du bei fopen als zweiten Parametr ein "w" nimmst.

    Herbststurm schrieb:

    2.) Bei der Erstellung der Textdatei, oder dem Überschreiben muss ja bestimmt ein Dateipfad auf meinem System angegeben werden, wo diese Datei sein soll. Wie kann ich in C sagen, dass es in dem Ordner suchen soll, in welchem das C Programm ausgeführt wird?

    Das ist ein bisschen schwammig.
    Meinst du das "current working directory" (z.B. Hoem-Verzeichnis) oder das Verzeichnis in dem das Programm liegt?

    Im ersten Fall reicht es aus, keinen Pfad anzugeben (nur den Dateinamen).
    Der zweite Fall ist schwieriger und Systemabhängig.



  • Hi gigg

    ertsmal vielen Dank für deine schnelle Hilfe.

    Der Code funktioniert wunderbar, genau das suchte ich.

    Da ich neu in der C Programmierung bin, würdest du mir zu deinem Code bitte in die Zeilen Kommentare schreiben? Wäre super.

    @DirkB
    Ich meine nicht das home Verzeichnis, sondern das Verzeichnis, in welchem das Programm liegt. Allerdings habe ich vor meine Software nur auf Linux Systemen laufen zu lassen, nicht auf Windows.

    Danke
    Viele Grüße



  • #include <stdio.h>    //Header-Datei einbinden
    
    int main() {
    	FILE *fp;    // Zeiger auf eine File-Struktur, wird zur Dateibearbeitung benoetigt
    	char text[] = "Dies ist das Array.";    // das char-array
    
    	if((fp = fopen("test.txt", "w+")) == NULL)     // fopen gibt den Zeiger fp zurueck oder NULL,
    		printf("konnte Datei nicht oeffnen.\n");    // wenn es nicht geklappt hat, 
    	else {    // "w" oder "w+" oeffnet zum Schreiben, wenn Datei nicht existiert, wird sie erzeugt, sonst ueberschrieben
    		fprintf(fp, "%s", text);    // fprintf schreibt das Array in die Datei
            fclose(fp);    // fclose schliesst die Datei wieder
        }
    	return 0;
    }
    

Anmelden zum Antworten