Problem mit Pfadangaben - Leerzeichen

Hi ich bins nochmal,

wieder folgendes Problem mit dem Leerzeichen, über die Konsoleneingabe soll der Pfad zu einer Datei angegeben werden von einem bestimmten Ordner aus.

zb. test\test.txt (danach noch 2 Parameter)

soweit funktioniert es - was aber nun wenn der pfad: test\kopie von test.txt ist - sprich leerzeichen enthält - wie kann ich das handlen mit sscanf ? wie unten im Codeauszug funktioniert es ja so nicht...da das Leerzeichen ja auftrennt...

Code:
ScanAnzahl = sscanf(Args, "%s %s %s", File->Name, &(File->De),  &(File->Dc));
 
Versuchs mal mit Anführungszeihen, z. B. "C:\\Mein Pfad\\Meine Datei.txt" bzw. 'C:\\Mein Pfad\\Meine Datei.txt'

Aber generell sollten Leerzeichen in Verzeichnis -/ Dateinamen vermieden werden. Wenns geht.
 
Hi.
soweit funktioniert es - was aber nun wenn der pfad: test\kopie von test.txt ist - sprich leerzeichen enthält - wie kann ich das handlen mit sscanf ? wie unten im Codeauszug funktioniert es ja so nicht...da das Leerzeichen ja auftrennt...

Code:
ScanAnzahl = sscanf(Args, "%s %s %s", File->Name, &(File->De),  &(File->Dc));
Die Frage ist allgemein: wie willst du erkennen wo ein Dateiname anfängt bzw. aufhört?

Am einfachsten wäre es ein Trennzeichen zu wählen das selbst nicht in einem Pfad vorkommen kann. (z.B. ein \n, dann kannst du mit fgets arbeiten)

Wenn du wirklich eine Art Befehl mit 3 Parametern von einer Zeile einlesen willst, müßtest du z.B. eine Art "Entwertung" des Leerzeichens einführen an das sich die Benutzer zu halten haben. Z.B. könntest doppelte oder einfache Anführungsstriche auf der Kommandozeile verwenden, falls der Pfad Leerzeichen enthält. Diese Eingabe müßtest du allerdings selbst per Hand verarbeiten und an den entsprechenden Stellen trennen.

Gruß

PS: Bitte halte dich an die Netiquette hier im Forum! Insbesondere auf die Groß-/Kleinschreibung - soviel Zeit muss sein.
 
Zurück