Anfänger: readdir/opendir implementiert
-
Hallo!
Kann jemand den Code posten, um die Funktionen readdir und opendir zu implementieren? Ich komm' nicht weiter!
Danke!
-
Was willst du denn machen? Ein Verzeichniss auslesen?
-
Ja!
Der Code:[cpp] #include "stdafx.h" #include <string.h> #include <dirent.h> #include <stdio.h> #include <conio.h> #include <dos.h> struct dirent* d; char cmd [32]; char parameter[128]; struct dirent *path; DIR *dir; void file_move(){ char filea[128], fileb[128]; int success; dir = opendir("."); path = readdir(dir); printf(path->d_name); printf("FILE TO MOVE> "); scanf("%s", filea); printf("NEW PATH> "); scanf("%s", fileb); success = rename(filea, fileb); if(success == 0){ printf("The file %s was successful renamed to %s\n", filea, fileb); } else { printf("The file %s was not found or the file %s already exist\nCould not move file %s to %s", filea, fileb, filea, fileb); } } int main(int argc, char* argv[]) { while(1){ printf("\nCOMMAND> "); scanf("%s", cmd); if( (0 == stricmp("quit", cmd)) || (0 == stricmp("exit", cmd))){ return 0; } else if( 0 == stricmp("move", cmd)){ file_move(); } } } [/cpp]
-
und wieso schreibst du nicht, wo dein Problem ist?
readdir(),opendir() implementieren? Die sind schon implementiert. Du willst sie benutzen und das tust du in deinem Beispiel.
-
Also: Wenn ich das Prog. kompilieren will, kommt folgende Fehlermeldung:
--------------------Konfiguration: tdos - Win32 Debug--------------------
Kompilierung läuft...
tdos.cpp
Linker-Vorgang läuft...
tdos.obj : error LNK2001: Nichtaufgeloestes externes Symbol _readdir
tdos.obj : error LNK2001: Nichtaufgeloestes externes Symbol _opendir
Debug/tdos.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.tdos.exe - 3 Fehler, 0 Warnung(en)
Wie kann ich jetzt die externen Symbole _readdir und _opendir implementieren?
-
Du wirst wahrscheinlich dem Linker noch irgendwo mitteilen müssen, dass er eine bestimmte .lib-Datei noch mit hinzulinken soll. Wo das bei deinem Compiler geht weiss ich allerdings nicht, da musst Du mal selber nachschauen (in der Onlinehilfe oder so)
-
Na bravo...
Ich hab MICROSOFT Visual C++
Das kann was dauern...aber ich mein, man müsste nur was im Quellcode ändern
egal! Ich werd erstmal die lib's überprüfen!
-
War doch nicht so schwer
Ich hab SÄMTLICHE LIB'S eingebunden...immernoch der selbe Fehler...
-
Und wer hat dich auf die blöde Idee gebracht, opendir/readdir mit VC++ verwenden zu wollen?
-
Nunja...der EINZIGE Kompiler der auf meinem System läuft (warum auch immer) ist VC++!
Früher hatte ich DJGPP...aber der läuft auf XP mit NTFS nicht!
-
Hallo,
wirf doch mal ein Blick in die WinAPI bzw. MFC-FAQ dort findest du alternative Wege aufgezeigt.
-
der djgpp läuft übrigens auf xp, wie kommst du auf das gegenteilige?
-
DJGPP findet den Linker nicht...
Wenn ich DJGPP auf 98 installiere funktioniert das OHNE PROBLEME!
Ich hab mir jetzt nochmal den Borland "gekrallt"
mal gucken, ob der läuft
-
du musst natürlich den passenden runterladen, siehe link. nicht irgendeinen von cd oder einen alten
zum zweiten: du musst die variablen schon setzten. also faq des compilers lesen.so long.
-
ps: und was soll schon wieder ein anderer compiler?
wieso hörst du nicht auf hume sikkins ratschlag und liest mal in der faq?
hier zum bleistift:
http://www.c-plusplus.net/forum/viewtopic.php?t=39396&sid=b7eb2768168f517934633d71439c84f6
dann klappts auch mit dem studiound vergiss nicht, die afx brauchst du nicht, du brauchst die windows.h.
so, nu viel spaß.
-
windows.h?
Das Programm wird ne Konsolenanwendung...da braucht man doch keine windows.h...oder?
-
in der konsole gibts die windows.h.
die von dir gewünschten funktionen gibt es jedoch nicht in standard c++.
entweder du fährst einen compiler, der aus kompatibilitätsgründen die dos directory funktionen dabei hat, oder du nutzt winapi.
das geht auch auf der konsole.
-
Der VC++ gibt immernoch die selbe Meldung raus!
DJGPP gibt folgendes raus:Compiling: tdos.cpp
no errors
Creating: tdos.exe
Error: c:/djgpp/bin/ld.exe: cannot find -lstdcxx
Error: collect2: ld returned 1 exit status
There were some errors...ok...
-
für c++ musst du mit gxx.exe compilieren, nicht mit gcc.exe.
sonst findet er die stdgcc nicht.das war aber unter win98 genauso.
-
hmm...die gxx.exe gibt mir ja auch den fehler raus...gcc.exe aber auch!
Außerdem findet er lstdcxx nicht!
-
ICH HABS!
ich musste die Dateien im Verzeichnis C:\DJGPP\LIB\GCC-LIB\DJGPP\
nach C:\DJGPP\LIB verschieben!
Und das Programm lässt sich jetzt auch kompilieren!
THX THX THX