Neue Datei öffnen während andere noch offen
-
geht das ?!
eine datei is geöffnet
in einer schleife will ich in eine andere datei schreiben (während die andere aber noch offen ist)
kann das funktionieren?hab 0 errors aber er schreibt nichts ....
thx
in der msdn gibts ein beispiel wo mehrere dateien geöffnet werden und dann alle gemeinsam geschlossen werden. doch bei mir wird nichts in die datei geschrieben!
-
Ja, dies funktioniert.
Zeig mal ein wenig Code...
-
int ifh0; int ifh1; int ifh2; int ifh3; int ifh4; int ifrho1; int ifrho2; int ifrho3; int ifrho4; char line[300]; int test1; test1=ifh0; FILE *stream; stream = fopen("C:\\NH_3l_4f_b.dat", "a+"); ifh0=1; ifh1=1; ifh2=1; ifh3=0; ifh4=0; ifrho1=1; ifrho2=1; ifrho3=1; ifrho4=0;
dann kommen einige if schleifen und so zeugs....
if(ifrho4==1) { //Befehle für h0=1, h1=1, h2=1, h3=0, h4=0, rho1=1, rho2=1, rho3=1, rho4=1 }//end if rho4 else { //Befehle für h0=1, h1=1, h2=1, h3=0, h4=0, rho1=1, rho2=1, rho3=1, rho4=0 FILE *dataout; dataout = fopen("C:\\data.txt", "w"); if( dataout == NULL ) { MessageBox( "The file fscanf.out was not opened" ); } else { float h0; float h1; float h2; float rho1; float rho2; float rho3; float f; float fconf1; char h0_str[20]; char h1_str[20]; char h2_str[20]; char rho1_str[20]; char rho2_str[20]; char rho3_str[20]; while (true) { fgets (line, 300, stream); sscanf(line, "%f %f %f %f %f %f ", &rho1, &rho2, &rho3, &h0, &h1, &h2); /*fconf1=rho1; fconf1=rho2; fconf1=rho3; fconf1=h0; fconf1=h1; fconf1=h2;*/ if((h0fixiert==1)&(h1fixiert==1)&(h2fixiert==1)&(rho1fixiert==1)) { sprintf(h0_str, "%f",h0); sprintf(h1_str, "%f",h1); sprintf(h2_str, "%f",h2); sprintf(rho1_str, "%f",rho1); sprintf(rho2_str, "%f",rho2); sprintf(rho3_str, "%f",rho3); if(0==strcmp(h0fix_combo,h0_str)&(0==strcmp(h1fix_combo,h1_str)&(0==strcmp(h2fix_combo,h2_str))&(0==strcmp(rho1fix_combo, rho1_str)))) { int i = 0, n; while (sscanf(&line[i], "%f%n", &f, &n) == 1) i+= n; // f hat jetzt den letzten Wert der Zeile fconf1=f; fprintf (dataout, "%s %f\n", rho3, f); MessageBox("1"); }//end if }//end while }//end else
-
Das er nix schreibt ist mir klar, wo ist den nämlich der Teil wo du schreiben tust??? Hier fehlt das fwrite mit dem du schreiben tust.
Desweiteren bin ich mir nicht sicher ob bei dirif((h0fixiert==1)&(h1fixiert==1)&(h2fixiert==1)&(rho1fixiert==1))
nicht
if((h0fixiert==1)&&(h1fixiert==1)&&(h2fixiert==1)&&(rho1fixiert==1))
heißen sollte, da das obere Binäroperatoren sind.
-
hab ja eh
fprintf (dataout, "%s %f\n", rho3, f);
genommen!
-
wollts jetzt mit dem fwrite befehl versuchen doch wie soll der funktionieren ?!
-
ungefähr so:
#include <stdio.h> void main() { FILE *fpread; FILE *fpwrite; int bufferreadedcount = 0; char buffer[1024]; fpread = fopen("C:\\test.txt","r"); fpwrite = fopen("C:\\test_copy.txt","w"); while((bufferreadedcount = fread(buffer,sizeof(char),1024,fpread))) fwrite(buffer,sizeof(char),bufferreadedcount,fpwrite); // Datei schreiben fclose(fpread); fclose(fpwrite); }
-
BItte ließ dir das nächstemal die Forenbeschreibung durch. Hier geht es um MFC.
-
Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC mit dem Visual C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ich will einen string und eine float variable ausgeben!
geht das auch mit fwrite ?!
-
hab gerade gelesen das man mit fwrite ein struct speichert. das brauch ich doch gar nicht !
wollte einen einfachen text ausgeben doch es wird nichts in die datei geschrieben....
fprintf(dataout,"Hallo Datei");
-
Wenn man eine Datei öffnet, sollte man sie auch schließen
und zwar bevor die Variable ins Nirvana geschickt wird! (Ich hoffe du weißt wie lange bzw. wo deine Variable "dataout" gültig ist.)
-
es funktioniert schon... juhuu