PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein C Programm



Whit3z
19.08.2007, 02:47
Hallo Leute

Also ich lerne schon seit einigen Monaten C. Allerdings hab ich noch nie in dieser Section vorbei geschaut, also nicht wundern. Wahrscheinlich war ich einfach zu faul. :oops:
Jedenfals hab ich auch schon mein grösseres Projekt etwas länger fertiggestellt. Es ist ein einfaches Programm zum Nachrichten Verschlüsseln. Nach einigen Verbesserungen ist dies die dritte Version. Ich hab auch eine Log Funktion mit eingebaut, die die Nachrichten in einem Log File speichert.

Jedoch finde ich, dass ich das irgendwie zu aufwendig gemacht hab. Es muss einfacher gehen, aber ich könnte eure Ratschläge dazu gut gebrauchen.

Hier der Source Code:


*Source Code gelöscht*
(Auf Anfrage per pm erhältlich.)

und hier die Datei fertig kompiliert.
*Link gelöscht*

P.S findet ihr das übertrieben, mit dem Copyright? Achja ich hab da jetzt nicht Shisha oder so reingeschrieben, hätt ich ja noch meinen richtigen Namen in Shisha ändern können, aber zu faul und ich denk ma das das eh keine Rolle spielt.

///EDIT///

fals ihr euch wundert wegen dem Stand 28.4.07, is ja schon länger her. Aber bei mir war das so:
Etwa vor 2 Jahren hab ich mir 3 Bücher gekauft, 2 zum Thema C und 1 zum Thema C++. Dann hab ich angefangen C zu lernen, hab mir alles durchgelesen und viel geübt, aber nur kleinere Progs geschrieben. Dann hab ich aber aber aufgehört, bzw. es verdrängt. Aber vor 5 Monaten etwa hab ich dann wieder angefangen, ich wusste natürlich noch viel, hab aber die Grundlagen usw. wiederhot. Und an meinem Programm gearbeitet. bis zum 28. 4. seitdem ist es bei mir wieder ein wenig in Vergessenheit geraten. ich hab nämlich nur kleinere rechenprogramme, teilweise für freunde gemacht, in der Zeit bis jetzt.
Doch dann bin ich vorhin über die Section hier "gestolpert" und dachte mir, dass ich mal wieder mein Projekt verfeinern könnte und was ihr dazu sagt.

-[RiDER]-
19.08.2007, 12:02
dateiname[0]='l';
dateiname[1]='o';
dateiname[2]='g';
dateiname[3]='.';
dateiname[4]='t';
dateiname[5]='x';
dateiname[6]='t';
dateiname[7]='\0'; lol, wie wärs mit
dateiname = "log.txt";
außerdem:

key=getchar();
1. Was soll diese Zuweisung bringen? Das Programm ist danach zuende.
2. main() muss einen rückgabewert vom typ int haben
int main(int argc, char *argv[])
{
...
return 0;
}
und du brauchst die datei doch nicht zwei mal zu öffnen und wieder zu schließen. reicht doch, wenn du sie am anfang öffnest und am ende wieder schließt. dann brauchste diese variable "dateiname" garnet.
int main(void)
{
... //variablen
stream = fopen("log.txt,"a");
... //crypter
fclose(stream);
return 0;
}und in dieser while-schleife, in der das eigentlich crypten stattfindet würde ich dann mit switch arbeiten, statt mit if/else if.
und das hier is ja mal megasinnlos:
else if (plaintext[i] == 32) {
plaintext[i]=32;
i++;
}genau wie das gleich mit x ein paar zeilen weiter unten.

und statt gets() würde ich fgets() nehmen. mit gets() riskierst du nen buffer overflow. auf jeden fall!!!

MfG RiDER

Whit3z
19.08.2007, 14:11
Okay danke schonmal, ich werd es mal überarbeiten.

Achja das mit dem Dateinamen, ging damals galub ich nicht und deshalb musste ich es auf die komplizierte Weise machen. Aber ich brauch den ja jetzt eh nich mehr, dank deinem hinweis. :)

Und das mit

key=getchar()
hatte ich gemacht, damit noch Enter drücken aufgenommen wird in den Speicher, bzw. ein anderes Zeichen. Denn man muss ja Enter drücken um das Programm zu beenden.

Aber ich machs jetzt mit return 0 usw. und die anderen sachen ändere ich auch noch.
Danke nochmal.

-[RiDER]-
20.08.2007, 08:36
Und das mit

key=getchar()
hatte ich gemacht, damit noch Enter drücken aufgenommen wird in den Speicher, bzw. ein anderes Zeichen. Denn man muss ja Enter drücken um das Programm zu beenden.wieso machstu nicht einfach nur getchar();? die variable key wird ja nie gebraucht.

MfG RiDER

Whit3z
20.08.2007, 09:00
Ja mach ich.
Hab soweit alles geändert. Thread kann geclosed werden.
Es sei denn, jemand hatt noch Hinweise.
Ach ja Rider ein gut gemeinter Hinweis, lies mal in Verbesserungsvorschläge "Ihr verbessert euch". Man darf absofort nicht mehr den letzten Post (in diesem Fall der vor vor letzte, bzw. der von mir mit key=getchar()) qutoen.

-[RiDER]-
20.08.2007, 10:19
ich hab ja nich den gesamten post gequotet, sondern den teil, auf den sich mein post bezieht.
das handelt sich imho um das quoten des gesamten letzten posts, was selbstverständlich absolut sinnlos ist. und das hab ich auch nicht getan :wink:

MfG RiDER

rob00n
20.08.2007, 11:33
Alles klar, -[RiDER]- hat´s verstanden. ;)

Wie oben steht: Source ab jetzt per PM.
Also wie gewünscht: Close!