char als Pfad

cwriter

Erfahrenes Mitglied
Ich habe ein Problem:
Wie kann man ein char in einen Pfad einfügen?

Beispiel:

Code:
char Dateipfad;
fopen("Dateipfad.txt","w+");

Habt ihr eine Lösung?

Vielen Dank

cwriter
 
Meinst du ein "char*" ?
Das geht einfach so:
C:
char* Pfad = "Text.txt";
fopen(Pfad, "w+");

Ein einzelnes Char kann eigentlich kein ganzer Pfad sein.
 
Entweder so wie Jellysheep beschrieben hat, oder falls du den Pfad im Programm zur Laufzeit ändern willst:

C++:
char Dateipfad[255];
strncpy(Dateipfad, "Pfad_zur_Datei.txt", sizeof(Dateipfad)); // Hier auf Backslashes (\) achten, diese müssen maskiert werden (\\)
 
Hey,

du kannst das ganze auf mit "fstream" machen...

Code:
#include <fstream>

char cDateipfad[128];
char cBuffer[1024];
fstream fDatei;

fDatei.open(cDateipfad, ios::in | ios::binary);  //ios::out zum schreiben und ios::trunc um den Inhalt zum löschen bevor man schreibt
if(fDatei.good())
{
    fDatei.read(cBuffer, sizeof(cBuffer));  //fDatei.write(); zum schreiben
}
fDatei.close();
 
du kannst das ganze auf mit "fstream" machen...

Code:
#include <fstream>

char cDateipfad[128];
char cBuffer[1024];
fstream fDatei;

fDatei.open(cDateipfad, ios::in | ios::binary);  //ios::out zum schreiben und ios::trunc um den Inhalt zum löschen bevor man schreibt
if(fDatei.good())
{
    fDatei.read(cBuffer, sizeof(cBuffer));  //fDatei.write(); zum schreiben
}
fDatei.close();

Moin,

hmm, es ging ja eher um das Füllen der Dateipfad-Variablen, oder ?
In Deinem Beispiel würdest Du ein "open" mit der leeren Variablen "cDateipfad" versuchen :p

Gruß
Klaus
 
Ein Programmierer der ein bisschen mit denkt (was man eigentlich schon erwarten kann :D),
hätte in die cDateipfad den Pfad reinkopiert mit der Funktion, was mein Vorgänger schon geschrieben hat.
Ich wollte es nicht nochmal wiederholen, aber wenn es dich dann beruhigt:

Code:
#include <fstream>

char cDateipfad[128];
char cBuffer[1024];
fstream fDatei;

strncpy(cDateipfad, "C:\\test.txt", sizeof(cDateipfad));

fDatei.open(cDateipfad, ios::in | ios::binary);  //ios::out zum schreiben und ios::trunc um den Inhalt zum löschen bevor man schreibt
if(fDatei.good())
{
    fDatei.read(cBuffer, sizeof(cBuffer));  //fDatei.write(); zum schreiben
}
fDatei.close();

zudem is dir aber nicht aufgefallen, dass der Code hier in keiner Funktion main() steht. Ohne dieser Funktion, würde das Programm so eh nicht laufen:D,
aber genug dem "klugscheiserischem" hier ;-)
 
Zuletzt bearbeitet:
Wie du korrekt zeigst, hat strcpy zwei Parameter. strncpy (man achte auf das "n") hat drei, nämlich noch die Angabe der maximalen Länge von dst.
 
Zurück