Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

4 Fragen zur C Programmierung

Frage Entwicklung C und C++

Mitglied: Michi262

Michi262 (Level 1) - Jetzt verbinden

12.02.2008, aktualisiert 08.03.2008, 6063 Aufrufe, 34 Kommentare

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
34 Antworten
Mitglied: miniversum
12.02.2008 um 15:07 Uhr
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
Bitte warten ..
Mitglied: Michi262
12.02.2008 um 15:40 Uhr
das steh auch nur wie ich eine Textdatei erstelle + entferne.

Aber ich weiß nicht wie ich diese in ein anderes Verzeichnis bekomme.

wie ich eine Variable auslese hab ich gefunden.

also nun eine Aktualisierung der Fragen:

1. Wie bekomm ich eine erstellte Texdatei in ein ander Verzeichnissß

2. wie lösche ich die Datei aus dem Verzeichniss wieder?

3. 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?
Bitte warten ..
Mitglied: miniversum
12.02.2008 um 15:55 Uhr
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?

Indem du nicht nur den Dateinamen angibst sondern eben noch zusätzlich das Laufwerk\das Verzeichnis. (L:\verzeichnis\datei.ext)
Bitte warten ..
Mitglied: Michi262
12.02.2008 um 23:56 Uhr
so?

01.
02.
	FILE* fTest = fopen("C:\Programme\test.txt","w+t"); 
03.
	fprintf(fTest,"blablabla"); 
04.
 
05.
   return 0; 
06.
}
weil bei mir kommt da immer n errror^^
Bitte warten ..
Mitglied: miniversum
13.02.2008 um 11:53 Uhr
ja fast. in C muß man \ durch \\ ersetzen. Also "C:\\Programme\\test.txt"
Bitte warten ..
Mitglied: Michi262
13.02.2008 um 23:30 Uhr
jop. thx es funktioniert

weiß dann noch wer, wie ich das Program wget ( http://users.ugent.be/~bpuype/wget/#download ) mit C ansteure?

hier hab ich noch ein Problem:

01.
 
02.
#include <windows.h> 
03.
#include <stdio.h> 
04.
 
05.
int main () 
06.
07.
  FILE * pFile; 
08.
  int c; 
09.
  pFile=fopen ("test.txt","r"); 
10.
  if (pFile==NULL) perror ("Error opening file"); 
11.
  else 
12.
13.
    do { 
14.
      c = fgetc (pFile); 
15.
 
16.
      if (c == 20) printf (""); 
17.
     }while (c != 20); 
18.
    fclose (pFile); 
19.
    system("meldung.cmd"); 
20.
21.
  return 0; 
22.
}
in der Datei meldung.cmd ist folgendes enthalten:

01.
@echo off 
02.
 
03.
set "tmpvbs=%temp%\tmpvbs.vbs" 
04.
echo WScript.Echo msgbox("Es ist ein neues Update vorhanden. Bitte klicken Sie auf OK. Das Passwort für das Archiv ist ****.", vbOKCancel, "Update") >"%tmpvbs%" 
05.
for /f "delims=" %%i in ('cscript //nologo "%tmpvbs%"') do set "ans=%%i" 
06.
del "%tmpvbs%" 
07.
if %ans% equ 1 start "" /d"%HOMEDRIVE%%HOMEPATH%" "C:\Programme\WOW Spezial Starter\Data\update.html"
kann mir da pls auch noch einer helfen?

MFG Michi262
Bitte warten ..
Mitglied: miniversum
14.02.2008 um 11:16 Uhr
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
Bitte warten ..
Mitglied: Michi262
14.02.2008 um 14:47 Uhr
Was ist daran das Problem? Willst du das
ganze ohne meldung.cmd machen und in c
nachprogramieren oder was geht daran nicht?


der startet mir meldung.cmd nicht
Bitte warten ..
Mitglied: miniversum
14.02.2008 um 16:30 Uhr
Versuchs mal mit
system("cmd /k meldung.cmd");
miniversum
Bitte warten ..
Mitglied: Michi262
21.02.2008 um 09:03 Uhr
hi @ all

entschuldigt das ich so lange nicht geantwortet habe aber ich lag mit grippe im bett.

nun möchte dich das ganze mit einer *.exe Datei machen.

wie funktioniert den das?

MFG Michi262
Bitte warten ..
Mitglied: miniversum
21.02.2008 um 13:07 Uhr
Eigentlich genauso.
Schonmal so versucht?:
system("programm.exe");
Bitte warten ..
Mitglied: Michi262
21.02.2008 um 14:23 Uhr
ja so hab ich´s schon versucht. aber da passierte wie bei der *.cmd datei auch nix
Bitte warten ..
Mitglied: miniversum
21.02.2008 um 14:40 Uhr
Habs grade mal mit dem Dev-C++ ausprobiert.
So geht es bei mir:
system("cmd /c meldung.cmd");
oder:
system("meldung.cmd");
oder:
system("notepad.exe");
miniversum
Bitte warten ..
Mitglied: Michi262
21.02.2008 um 19:30 Uhr
das probelm ist bei mir liegt die *.exe in einem ordern, der im Dateinamen Leerzeichen beinhaltet. könnte dies die Fehlerquelle sein???
Bitte warten ..
Mitglied: miniversum
22.02.2008 um 09:26 Uhr
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:
"C:\das ist das Programm\mein programm.exe"
In C dann:
system("\"C:\\das ist das Programm\\mein programm.exe\"");
miniversum
Bitte warten ..
Mitglied: Michi262
22.02.2008 um 20:48 Uhr
Ok. ich werds versuchen. melde mich gleich wieder.

weild as mit den " bin ich ja aus Batch gewohnt aber das hat er nicht gefressen^^

edit:

thx da programm startet.

aber das mit der Variable geht noch net.

Kann da wer bitte nen blick drauf werfen?

01.
 
02.
#include <windows.h> 
03.
#include <stdio.h> 
04.
 
05.
int main () 
06.
07.
  int c; 
08.
  FILE * pFile; 
09.
  pFile=fopen ("test.txt","r"); 
10.
  if (pFile==NULL) perror ("Version kann nicht überprüft weden!!"); 
11.
  else 
12.
13.
    do { 
14.
      c = fgetc (pFile); 
15.
      if (c == 2.0) system("\"C:\\das ist das Programm\\mein programm.exe\""); 
16.
     }while (c != 2.0); 
17.
    fclose (pFile); 
18.
    system("meldung.cmd"); 
19.
20.
  return 0; 
21.
}
Bitte warten ..
Mitglied: miniversum
23.02.2008 um 10:36 Uhr
Das problem liegt hier:
c = fgetc (pFile);
if (c == 2.0)
Genaugenommen sind es zwei.
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
Bitte warten ..
Mitglied: Michi262
23.02.2008 um 12:42 Uhr
achso. ok danke. werde es mal nacher Versuchen weil ich jetzt weg muss.

edit:

ich hab´s jetzt mal mit

01.
 
02.
#include <stdio.h> 
03.
#include <windows.h> 
04.
 
05.
int main() 
06.
07.
   FILE * pFile; 
08.
   char string [100]; 
09.
 
10.
   pFile = fopen ("test.txt" , "r"); 
11.
   if (pFile == NULL) perror ("Error opening file"); 
12.
   else { 
13.
     fgets (string , 100 , pFile); 
14.
     puts (string); 
15.
     fclose (pFile); 
16.
	 if (string == "2.0") system("\"C:\\Programme\\World of Warcraft\\WoW.exe\""); 
17.
18.
   return 0; 
19.
20.
 
verscuht. aber irgendwie ohne erfolg
Bitte warten ..
Mitglied: miniversum
27.02.2008 um 09:41 Uhr
So gehts:
01.
#include <stdio.h> 
02.
#include <windows.h> 
03.
 
04.
int main() 
05.
06.
   FILE * pFile; 
07.
   char string [100]; 
08.
 
09.
   pFile = fopen ("test.txt" , "r"); 
10.
   if (pFile == NULL) perror ("Error opening file"); 
11.
   else { 
12.
     fgets (string , 5 , pFile); 
13.
     puts(string); 
14.
     fclose (pFile); 
15.
	 if (strcmp(string,"2.0") != 0)  
16.
        system("\"C:\\Programme\\World of Warcraft\\WoW.exe\""); 
17.
                 
18.
19.
   system("PAUSE"); 
20.
   return 0; 
21.
}
der Vergleich der strings sollte man mit strcmp machen. Da war ich jetzt auch nicht aufmerksam genug.
Bitte warten ..
Mitglied: Michi262
27.02.2008 um 15:03 Uhr
ok. danke wer´s gleich mal testen

edit:

der startet mir die wow.exe nicht
Bitte warten ..
Mitglied: Michi262
29.02.2008 um 15:20 Uhr
ich push hier ma weil nix kommt
Bitte warten ..
Mitglied: miniversum
29.02.2008 um 16:00 Uhr
Da ich hier kein WOW habe hab ichs mal mit dem Mediaplayer getestet.
01.
#include <stdio.h> 
02.
#include <windows.h> 
03.
 
04.
int main() 
05.
06.
   FILE * pFile; 
07.
   char string [100]; 
08.
 
09.
   pFile = fopen ("test.txt" , "r"); 
10.
   if (pFile == NULL) perror ("Error opening file"); 
11.
   else { 
12.
     fgets (string , 5 , pFile); 
13.
     puts(string); 
14.
     fclose (pFile); 
15.
     if (strcmp(string,"2.0") != 0) { 
16.
        puts("Programm wird gestartet"); 
17.
        system("\"E:\\Programme\\Windows Media Player\\wmplayer.exe\""); 
18.
19.
20.
   system("PAUSE"); 
21.
   return 0; 
22.
}
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.
Bitte warten ..
Mitglied: Michi262
02.03.2008 um 17:32 Uhr
lol. der code geht bei mir auch net
Bitte warten ..
Mitglied: miniversum
02.03.2008 um 17:50 Uhr
Also wenn ich bei mir mein DEV C++ starte, ein neues C++ Projekt anlege, dann den Code so reinkopiere und auf compilieren klicke läuft das Programm. Ich kanns echt nicht nachvollziehen.
Bitte warten ..
Mitglied: Michi262
04.03.2008 um 23:18 Uhr
ja das ist schon komisch. ich arbeite mit lcc.

wie müsste denm der code heißen wenn er eine varable aus lesen soll und das programm im qellcode weiterlaufen soll. außer die variable stimmt nicht dann soll eine Fehlermeldung erscheinen mit einem Button (wo am besten draufsteht "Update").

MFg Michi26206
Bitte warten ..
Mitglied: miniversum
05.03.2008 um 09:08 Uhr
Wie meinst du das ne Variable auslesen?

Wenn Du buttons willst dann solltst du visual studio oder so nehmen.

Hast du es den mal mit DEV-C++ versucht ob es da bei dir geht?
Bitte warten ..
Mitglied: Michi262
05.03.2008 um 15:11 Uhr
ne mit DEV-C++ hab ich´s nicht versucht.

Also ich will mit wget wieder die Datei version.txt aus dem Internet laden. dann soll das Programm überprüfen ob die Variabel mit der die im Programm steht übereinstimmt oder nicht. Wenn sie stimmt läuft das Programm weiter. Wenn sie nicht stimmt soll ein Fenster mit der Nachricht: "Es ist ein neues Update vorhanden. Bitte laden Sie sich das Update." und darunter ein Button auf dem steht "Update" der dann auf eine Internetseite führen soll

Bild:

[url]http://img507.imageshack.us/my.php?image=updatezl1.png[/url]

PS: entschuldigt die [url] aber wenn ich die weg lasse zeigt er nich den link
Bitte warten ..
Mitglied: miniversum
05.03.2008 um 19:07 Uhr
Für so ein Fenster brauchst du dann visual c++ express oder was vergleichbares.
dann kanst du damit das fenster entwerfen und anzeigen lassen.
Aber da bin ich dann überfragt weil ich für so sachen nie c++ nehme.
Bitte warten ..
Mitglied: Michi262
06.03.2008 um 00:01 Uhr
gibt es dann was vergleichbares das du kannst?
Bitte warten ..
Mitglied: miniversum
06.03.2008 um 10:12 Uhr
nein ich kenn nichts vergleichbares. Aber wie gesagt ich machen in c++ eigentlich nie was mit Fenstern.

die express version vom VS ist ja kostenlos
Bitte warten ..
Mitglied: Michi262
07.03.2008 um 23:17 Uhr
ach so ok. ich hscu mal nach einer alternative. wenn ich was brauche melde ich mich

MFG Michi262

PS: danke mal für alles
Bitte warten ..
Mitglied: Michi262
08.03.2008 um 17:21 Uhr
sry wegen doppelpost.

kannst du mir den wget cod pls geben?
ich finde ihn nicht unter den vielen angebotenen sachen

MFG Michi262
Bitte warten ..
Mitglied: Michi262
08.03.2008 um 20:46 Uhr
ok. danke werde ich dann gleich mal testen. hoffentlich klappts
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Exchange Server
Allgemeine Fragen zum Exchange 2010 (3)

Frage von Leo-le zum Thema Exchange Server ...

TK-Netze & Geräte
XPhone UC Fragen (4)

Frage von Hendrik2586 zum Thema TK-Netze & Geräte ...

C und C++
Hilfe in C Programmierung Diagram als ppm ausgeben (3)

Frage von vabu84 zum Thema C und C ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...