4 Fragen zur C Programmierung
Textdatei in einem Verzeichniss erstellen
Textdatei löschen
Variable aus Textdatei auslesen
wget ansteuern
Hi,
ich hab 4 fragen:
1. Wie kann ich eine Textdatei (.*wtf) die einen Text enthält in einem Verzeichnis erstellen?
z.B soll die datei test.wtf unter "C:\Programme\test" erstellt werden un diesen Text beinhalten: Text
2. Wie kann ich diese Textdatei wieder löschen?
3. wie kann ich eine Variable aus einer Textdatei auslesen?
4. Wie steuere ich das Program wget ( http://users.ugent.be/~bpuype/wget/#download ) mit C an? Oder gibt es unter C einen eigenen
Befehl dafür?
MFG Michi262
PS: Danke an alle die mir helfen
Textdatei löschen
Variable aus Textdatei auslesen
wget ansteuern
Hi,
ich hab 4 fragen:
1. Wie kann ich eine Textdatei (.*wtf) die einen Text enthält in einem Verzeichnis erstellen?
z.B soll die datei test.wtf unter "C:\Programme\test" erstellt werden un diesen Text beinhalten: Text
2. Wie kann ich diese Textdatei wieder löschen?
3. wie kann ich eine Variable aus einer Textdatei auslesen?
4. Wie steuere ich das Program wget ( http://users.ugent.be/~bpuype/wget/#download ) mit C an? Oder gibt es unter C einen eigenen
Befehl dafür?
MFG Michi262
PS: Danke an alle die mir helfen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80564
Url: https://administrator.de/contentid/80564
Ausgedruckt am: 16.11.2024 um 09:11 Uhr
34 Kommentare
Neuester Kommentar
Lies dir mal das hier, und due Doku zu den dort aufgeführten Befehlen durch.
http://www.cplusplus.com/reference/clibrary/cstdio/
Da findest Du auch Codebeispiele.
miniversum
http://www.cplusplus.com/reference/clibrary/cstdio/
Da findest Du auch Codebeispiele.
miniversum
Aber ich weiß nicht wie ich diese in ein anderes Verzeichnis bekomme.
1. Wie bekomm ich eine erstellte Texdatei in ein ander Verzeichnissß
2. wie lösche ich die Datei aus dem Verzeichniss wieder?
2. wie lösche ich die Datei aus dem Verzeichniss wieder?
Indem du nicht nur den Dateinamen angibst sondern eben noch zusätzlich das Laufwerk\das Verzeichnis. (L:\verzeichnis\datei.ext)
Was ist daran das Problem? Willst du das ganze ohne meldung.cmd machen und in c nachprogramieren oder was geht daran nicht?
wget kanst du ja auch über system starten.
Also system("wget.exe");
Aber eine elegantere Lösung ist es den sourcecode von wget zu nehmen (z.B. von hier http://www.gnu.org/software/wget/ ) und ihn direkt mit einzubinden.
miniversum
wget kanst du ja auch über system starten.
Also system("wget.exe");
Aber eine elegantere Lösung ist es den sourcecode von wget zu nehmen (z.B. von hier http://www.gnu.org/software/wget/ ) und ihn direkt mit einzubinden.
miniversum
Ja.
Normalerweise musst du dann das Ganze in Anführungszeichen setzen.
Da aber schon beim system Befehl ansich die Befehlszeile in Anführungszeichen steht und es so sonst zu Problemen kommt müssen die zusätzlichen Anführungszeichen mit einem zusätzlichen "\" ausmaskiert werden. Die Benötigst du auch bei den "\". Dazu kannst Du mal das hier anschauen: http://tutorial.schornboeck.net/escape.htm :
Aufruf von der cmd aus:
Normalerweise musst du dann das Ganze in Anführungszeichen setzen.
Da aber schon beim system Befehl ansich die Befehlszeile in Anführungszeichen steht und es so sonst zu Problemen kommt müssen die zusätzlichen Anführungszeichen mit einem zusätzlichen "\" ausmaskiert werden. Die Benötigst du auch bei den "\". Dazu kannst Du mal das hier anschauen: http://tutorial.schornboeck.net/escape.htm :
Aufruf von der cmd aus:
"C:\das ist das Programm\mein programm.exe"
In C dann:system("\"C:\\das ist das Programm\\mein programm.exe\"");
miniversum
Das problem liegt hier:
Mit fgetc werden immer einzelne Zeichen eingelesen, keine Zeichenketten. Siehe hier: http://www.cplusplus.com/reference/clibrary/cstdio/fgetc.html
Wenn du mehrere Zeichen als string einlesen willst ist dann besser endweder die Funktion
fscanf ( http://www.cplusplus.com/reference/clibrary/cstdio/fscanf.html )
oder
fgets ( http://www.cplusplus.com/reference/clibrary/cstdio/fgets.html )
geeignet.
Das zweite Problem ist dann der Vergleich. mit einem
miniversum
c = fgetc (pFile);
if (c == 2.0)
Genaugenommen sind es zwei.if (c == 2.0)
Mit fgetc werden immer einzelne Zeichen eingelesen, keine Zeichenketten. Siehe hier: http://www.cplusplus.com/reference/clibrary/cstdio/fgetc.html
Wenn du mehrere Zeichen als string einlesen willst ist dann besser endweder die Funktion
fscanf ( http://www.cplusplus.com/reference/clibrary/cstdio/fscanf.html )
oder
fgets ( http://www.cplusplus.com/reference/clibrary/cstdio/fgets.html )
geeignet.
Das zweite Problem ist dann der Vergleich. mit einem
if (c == 2.0)
würde dir das Zeichen das in c steht mit dem Zeichen vergleichen das den ascii Code 2 hat. Willst du ein einzelnes Zeichen mit einem andern vergleichen müßte das su aussehen:if (c == '2')
Bei strings wäre ein Vergleich so durchzuführen:if (c == "2.0")
miniversum
So gehts:
der Vergleich der strings sollte man mit strcmp machen. Da war ich jetzt auch nicht aufmerksam genug.
#include <stdio.h>
#include <windows.h>
int main()
{
FILE * pFile;
char string [100];
pFile = fopen ("test.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else {
fgets (string , 5 , pFile);
puts(string);
fclose (pFile);
if (strcmp(string,"2.0") != 0)
system("\"C:\\Programme\\World of Warcraft\\WoW.exe\"");
}
system("PAUSE");
return 0;
}
Da ich hier kein WOW habe hab ichs mal mit dem Mediaplayer getestet.
Dieser Code funktioniert bei mir.
Die Datei test.txt liegt im gleichen Verzeichnis wie die Exe Datei des Programms. Ich kann also keinen Fehler finden.
#include <stdio.h>
#include <windows.h>
int main()
{
FILE * pFile;
char string [100];
pFile = fopen ("test.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else {
fgets (string , 5 , pFile);
puts(string);
fclose (pFile);
if (strcmp(string,"2.0") != 0) {
puts("Programm wird gestartet");
system("\"E:\\Programme\\Windows Media Player\\wmplayer.exe\"");
}
}
system("PAUSE");
return 0;
}
Die Datei test.txt liegt im gleichen Verzeichnis wie die Exe Datei des Programms. Ich kann also keinen Fehler finden.