Datei auslesen und einzelne Wörter in einen binären Baum ausgeben
-
Ich will ab heute ein Programm schreiben, in dem es darum geht, dass ich eine bestehende Textdatei, in der ein Quellcode ist, auslese und die ganzen Wörter, die darin vorkommen, in einen binären Baum schreibe.
Als nächstes müssen dann in alphabetischer Reihenfolge jede Gruppe von Variablennamen ausgibt, die sich nach den ersten 6 Zeichen unterscheiden.
Habt ihr dazu Ideen oder Ansätze, die man hilfreich verwenden kann ?
-
Soooo..... damit kann ich erstmal die Datei auslesen:
#include <stdio.h> #include <string.H> #include <stdlib.h> int main() { char *wort[200][200]; int i = 0, fplaenge; FILE* fp; fp = fopen("gedicht.txt", "r"); while(!feof(fp)) { fscanf(fp, "%s", &wort[i][i]); i++; } printf("Der Text in der Datei lautet: '%s'\n", *fp); system("PAUSE"); return 0; }
-
BITTE(!) kein system("PAUSE")!
Wenn du vom Benutzer am Schluss eine Eingabe forderst, dann mach das mit scanf(), fgets(), ... (jede Funktion zum Einlesen von der Tastatur soll mir recht sein, aber kein system("PAUSE")!)
-
getch(); oder getchar();
mach immer so
-
string.H? seit wann? somit wär dieses bei mir nicht mehr kompilierbar, weil ich kein string.H habe. Und meine Shell kennt auch kein PAUSE, da würde ich auch ne Fehlermeldung bekommen.
-
AJ schrieb:
BITTE(!) jede Funktion zum Einlesen von der Tastatur soll mir recht sein, aber kein system("PAUSE")!
geht das nur unter windows?
-
net schrieb:
AJ schrieb:
BITTE(!) jede Funktion zum Einlesen von der Tastatur soll mir recht sein, aber kein system("PAUSE")!
geht das nur unter windows?
ja, so ist es. Und system ist eine schöne Hintertür für Hacker, damit kann man böse Sachen mit wenig Mühe einrichten.
-
cHillb3rT schrieb:
Soooo..... damit kann ich erstmal die Datei auslesen:
.... fscanf(fp, "%s", &wort[i][i]); ....
schreibt die fscanf nicht sowieso schon auf eine addresse(wort[][] ist schon pointer) ? also können wir doch das "&" weg lassen oder nicht? ich kann mich auch irren habe nicht wirklich ahnung
-
Anmerkung: "string.h" ist Teil der Standard-C-Bibliothek und enthaelt Funktionen wie memcpy(), strcpy() usw.; "string" ist Teil der Standard-C++-Bibliothek (in diesem Fall der STL). getch() ist in "conio.h" definiert und ist plattform-spezifisch.
-
supertux schrieb:
...so ist es. Und system ist eine schöne Hintertür für Hacker, damit kann man böse Sachen mit wenig Mühe einrichten.
wie soll man 'system("pause")' hacken? da sind funktionen zur tastatureingabe schon anfälliger
-
net schrieb:
supertux schrieb:
...so ist es. Und system ist eine schöne Hintertür für Hacker, damit kann man böse Sachen mit wenig Mühe einrichten.
wie soll man 'system("pause")' hacken? da sind funktionen zur tastatureingabe schon anfälliger
Ich hab zwar nicht getestet, aber wenn man die PATH Variable ummschreibt und ein Skript (etwa eine BAT Datei) mit dem Namen pause ertsellt, dann wird diese ausgeführt und dort kannst du z.b. del Befehle haben und wichtige Dateien löschen oder umschreiben oder was weiß ich. Durch system ist einfach sowas zu machen.
-
supertux schrieb:
net schrieb:
supertux schrieb:
...so ist es. Und system ist eine schöne Hintertür für Hacker, damit kann man böse Sachen mit wenig Mühe einrichten.
wie soll man 'system("pause")' hacken? da sind funktionen zur tastatureingabe schon anfälliger
Ich hab zwar nicht getestet, aber wenn man die PATH Variable ummschreibt und ein Skript (etwa eine BAT Datei) mit dem Namen pause ertsellt, dann wird diese ausgeführt und dort kannst du z.b. del Befehle haben und wichtige Dateien löschen oder umschreiben oder was weiß ich. Durch system ist einfach sowas zu machen.
aha. danke
-
Wieso wird dann dieser Befehl überhaupt noch benutzt, wenn er so viele Sicherheitslücken aufdeckt und frei macht und anscheinend genügend andere Möglichkeiten der Programmierung dafür bestehen ?