Hi,
also ich programmier' noch nicht soo lange und habe gerade ein Problem bei folgendem Programm:
Und zwar ergibt das Programm bei folgendem Input:
Text: blub
Key: a
folgende Ausgabe in der Textdatei:
cmvc??AE;]Fjhfof!p usw.
Nun die Frage:
Warum tut es das?^^
Und wie kann ich das beheben?
die ersten 4 buchstaben sind ja richtig (jeder buchstabe um 1 im ASCII-code erweitert), aber woher kommt der rest?
?: Mit fprintf() funktioniert's auch nicht, hab ich vor fputc() schon probiert.
dankeschön...
mfg,
marco
also ich programmier' noch nicht soo lange und habe gerade ein Problem bei folgendem Programm:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include <ctype.h>
#include <time.h>
#define MAX_STRING 500
int main()
{
FILE *stream;
char s[500];
strcpy(s, " ");
char key;
int keyi, i;
printf("Gib den zu verschluesselnden Text ein :\n\n");
gets(s);
printf("\n\nWelchen Schluessel wollen Sie verwenden (a-z) >> ");
key=getchar();
system("CLS");
switch(key)
{
case 'a': case 'A': keyi=1; break;
case 'b': case 'B': keyi=2; break;
case 'c': case 'C': keyi=3; break;
case 'd': case 'D': keyi=4; break;
case 'e': case 'E': keyi=5; break;
case 'f': case 'F': keyi=6; break;
case 'g': case 'G': keyi=7; break;
case 'h': case 'H': keyi=8; break;
case 'i': case 'I': keyi=9; break;
case 'j': case 'J': keyi=10; break;
case 'k': case 'K': keyi=11; break;
case 'l': case 'L': keyi=12; break;
case 'm': case 'M': keyi=13; break;
case 'n': case 'N': keyi=14; break;
case 'o': case 'O': keyi=15; break;
case 'p': case 'P': keyi=16; break;
case 'q': case 'Q': keyi=17; break;
case 'r': case 'R': keyi=18; break;
case 's': case 'S': keyi=19; break;
case 't': case 'T': keyi=20; break;
case 'u': case 'U': keyi=21; break;
case 'v': case 'V': keyi=22; break;
case 'w': case 'W': keyi=23; break;
case 'x': case 'X': keyi=24; break;
case 'y': case 'Y': keyi=25; break;
case 'z': case 'Z': keyi=26; break;
default : printf("Sie haben einen falschen Schluessel eingegeben! Programm wird beendet! \n\n");
goto end2;
break;
}
for(i=0; i<MAX_STRING; i++)
{
s[i]=s[i]+keyi;
}
system("CLS");
stream = fopen("verschlüsselter Text.txt", "w");
for(i=0; i<MAX_STRING; i++)
{
fputc(s[i], stream);
}
end1:
fclose(stream);
system("CLS");
printf("Der Text wurde erfolgreich verschluesselt und ist in der Datei \n''verschluesselter Text.txt'' zu finden !\n\n\n");
end2:
system("PAUSE");
return 0;
}
Und zwar ergibt das Programm bei folgendem Input:
Text: blub
Key: a
folgende Ausgabe in der Textdatei:
cmvc??AE;]Fjhfof!p usw.
Nun die Frage:
Warum tut es das?^^
Und wie kann ich das beheben?
die ersten 4 buchstaben sind ja richtig (jeder buchstabe um 1 im ASCII-code erweitert), aber woher kommt der rest?
?: Mit fprintf() funktioniert's auch nicht, hab ich vor fputc() schon probiert.
dankeschön...
mfg,
marco