Problem mit Codieren [C]

Ich farge das Ende des Schlüssels ab, mit if(code[ i ]==0) und setze den Zähler auf null.
Hast Du in Deinem ursprünglichen Post (#1) nicht geschrieben, daß nach dem letzten Schlüsselbyte ein '-1' kommt? Dann solltest Du doch auf '-1' testen und nicht auf '0'. Oder war das ein Tippfehler?
 
Code:
#include <stdio.h>
   
   int lese_f();
   
   
   main()
   {
   	int  i;
   	unsigned char code[80], quell[80], ziel[80], crypt, key, uncrypt;
   	FILE * loadedq;
   	FILE * loadedz;
   
   	i = 0;
   	gets(code);    
   	gets(quell);
   	loadedq = fopen( quell, "rb" );
   	
   	if( loadedq == 0 )
   	{
 	 printf("|-->>	 Falscher Pfad / Dateiname oder die Datei existiert nicht !	 <<--|");
   		getchar();
   		return;	 //Programmabruch
   	}
   	
   	
   	gets(ziel);
   	
   	loadedz = fopen( ziel, "rb" );  
   	if( loadedz == 0 )
   	{
 	 printf("|-->>	 Falscher Pfad / Dateiname oder die Datei existiert nicht !	 <<--|");
   		getchar();
   		return;	 //Programmabruch
   	}
   	fclose(loadedz);
   	
   	
   	//Chiffrierung
   	loadedz = fopen ( ziel , "wb" );
   	do
   	{
   		
   		if(code[i]==0)
   		{
   			i=0;
   		}
   		 
   		crypt=(fgetc(loadedq));
   		key=code[i];
   		uncrypt=crypt-key;
   		fputc(crypt, loadedz);
   		i++;
   				  
   					    
   			   
   	}while(!feof(loadedq));
   	fclose(loadedz);
   	fclose(loadedq);
   	
   }

Der Code zum Codieren ist ja fast der selbe.......aber das geht so ned..........
Hilfe.......

/edit: das war noch was anderes.........die 0 ist das erste leere feld nach dem Schlüssel im String. Die dadurch bewirkte Wiederholung des Schlüssels funktioniert auch tadellos.......
 
Zuletzt bearbeitet:
Im Code den ich gepostet habe, ist noch ein Fehler! In der fputc-Funktion müsste es "uncrypt" anstatt von "crypt" heissen. Daran lag es zwar nicht, doch jetzt gehs, ich habe nochmals die Variablen neu declariert und hier gefummelt und da eingerückt.....und nu...^^

Vielen Dank euch allen.....
Greez Sulo
 

Neue Beiträge

Zurück