Filehandling, Datei wird nicht geöffnet.



  • Zu meinem Problem: Ich habe eine Client, Server Applikation programmiert welche Dateien senden und empfangen soll. Jedoch öffnet er bei mir die "date.txt" nicht. Nach dem Kompalieren schließe ich das Programm und öffne es aus dem Debug Ordner wieder. In diesem liegt dann auch die "date.txt".

    #include "stdafx.h"
    #include "Socket.h"
    #include "ServerSocket.h"
    #include <Windows.h>
    #include "stdio.h"
    
    Socket * workSock;   //Socket für den Client und Worksocket des Servers 
    ServerSocket * server; //Socket für den Server 
    bool close = 0;   //Bool-Variable zum Beenden der Verbindung 
    int sizeInt=0;
    int sizeZeichen=0;
    char* buffer = 0 ;
    char sende[1024];
    char* size = new char;
    int main(int argc, char* argv[]) 
    { 
    	 int mode = 0;
    	 char temp[150];
    
    	 cout<<"1 Client , 2 Server"<<endl;
    	 cin>>mode;
    	 int read = 0;
    
    	 if ( mode == 1 ) 
    	 { 
    		Socket Client("127.0.0.1",2558); 
    
    		cout<<"Verbindet"<<endl;
    		int i= 0;
    		while(Client.connect()== 0)
    		{
    			Sleep(200);  
    			if(i == 100)
    				cout<<"Verbindung nicht hergestellt"<<endl;
    
    		}
    		FILE* file;
    	if(( file = fopen("date.txt" ,"rb")) == 0); // hier öffnet er die Datei nicht
    		cout<<"Konnte nicht geöffnet werden"<<endl;
    
    		fseek (file,0,SEEK_END);
    
    		sizeInt = ftell(file);
    		rewind(file);
    		buffer=(char*)malloc (sizeof(char)*sizeInt);
    		workSock->write(sizeInt);
    
    		long result;
    		result=fread(buffer,1,sizeInt,file);
    		int j=0;
    		for (int i = 0; i<result;i++)
    		{
    			sende[j]=buffer[i];		
    			workSock->write(sende,1);
    
    			}
    		}
    
    	 if ( mode == 2 )
    	 {
    
    		 int Size, i = 0;
    		 ServerSocket Server(2558);
    		 FILE *datei;
    	datei = fopen("Elite.txt" ,"wb");
    	Socket* work_sock = Server.accept(); 
    	cout<<"Verbunden "<<endl;
    
    	Size = work_sock->read();
    
    	while(i != Size)
    	{
    		work_sock->read(buffer,1);
    		fprintf(datei,"%c",buffer);
    		i++;
    	}
    	cout<<"Datei übertragen"<<endl;
    	}
    
      }
    


  • Ist das jetzt C++ weil du cout benutzt ?



  • eine Mischung aus beidem, weil wir in der Schule kein Filehandling in c++ gelernt haben sondern nur in C.



  • Mach mal das ; hinter dem if weg


Anmelden zum Antworten