textdatei verschlüsseln
-
nwp2 schrieb:
;fricky schrieb:
was bedeutet denn: 'class not defined'?
class ist die C++-Erweiterung für struct wo man es sich sparen kann das aufrufende Objekt mitzugeben und Konstruktor/Destruktor hat, was sehr der Übersicht dient.
häh? du bist nicht zufälligerweise volkard, der sich mit einem zweit-account tarnt, um verwirrung unter uns C-usern zu stiften? *fg*
nwp2 schrieb:
Ich werde mir mal codeblocks oder so ankucken, vielleicht kriegt man es ja ohne extremen Aufwand zum laufen.
ja, mach das, du wirst begeistert sein. unter windows ist es echt easy, einfach installieren und gleich loslegen. wie's sich unter linux anfühlt, kann ich dir leider nicht sagen, aber funzt da vermutlich auch ganz gut.
-
nwp2 schrieb:
Ich habe nichmal eine IDE, weil der Aufwand Eclipse, Netbeans und Co zum laufen zu kriegen so extrem hoch ist, dass es sich für mich nicht lohnt.
also ich kann verstehen was du meinst aber ich verwende easy eclipse denke dass machts doch schon echt einfach, noch easyer gehts nicht.http://www.easyeclipse.org/site/home/ lg lolo
-
Ok, code::blocks ist schonmal nichts für mich. Der Aufwand sowas hier zum laufen zu kriegen ist mir zuviel.
#include <stdio.h> int main(){ printf("hallo\n"); }
Ich mache mir ein Projekt (wozu eigentlich, ich will garkeins!), füge eine C-Datei ein, sage Run, "Projekt wurde noch nicht gebaut, wollen Sie es jetzt bauen?"->Ja->"Projekt wurde noch nicht gebaut, wollen Sie es jetzt bauen?"->Ja->"Projekt wurde noch nicht gebaut, wollen Sie es jetzt bauen?"->Ja->"Projekt wurde noch nicht gebaut, wollen Sie es jetzt bauen?"->lösche codeblocks.
Auch ein manuelles "build" bringt nix, "nothing to build". Ich weiß, mit einem Haufen Hacks läuft es irgendwann, aber bis dahin bin ich schon fertig
Ach ja, Installation inklusive MinGW, ist ja nicht so als hätte er keinen Compiler.Eclipse ist genauso, ich versuche es mal mit anjuta.
Edit: Ok, gibs nur für Linux. Bevor ich Gnome oder KDE wieder laufen habe ist es Weihnachten :xmas1:
Also bleibe ich bei Scite bis mein selbst geschriebener Editor fähig wird.
-
Wieso machst du ein Projekt? Mach ne leere .c datei und klick auf Build, fertig?
Bei Projekten geht das eigentlich genauso, kA was bei dir da kaputt ist (war)... bei mir ging das alles auf Anhieb.
-
nwp2 schrieb:
Also bleibe ich bei Scite bis mein selbst geschriebener Editor fähig wird.
ok, dann versuchs mal mit 'notepad.exe', oder besser noch: 'cmd.exe' und gib 'edit' ein. meinste, das kriegste hin? *fg*
-
Zum Glück funktioniert ed ohne den xserver
-
also statt über den editor zu debattieren sollte man sich doch auf das wesentliche konzentrieren, und das ist die programmierung, wer auf der konsole ohne syntax highlight und autocompletion und sonstige große und kleine helfer die einem das leben erleichtern entwickeln will kann das gerne machen, auch werden mich einige dafür hassen mit ner java ide(eclipse) c zu proggen, ich würd auch lieber vsc++ verwenden aber das kann ich mir nicht leisten:(
die tour de france gewinnt man heute auch nicht mehr mit nem stahl rad ohne gang schaltung
lg lolo
-
Scite hat Syntaxhighlighting und Folding. Was besseres unter 100mb scheint es nicht zu geben.
-
noobLolo schrieb:
auch werden mich einige dafür hassen mit ner java ide(eclipse) c zu proggen,
naja, ich hab eclipse/CDT/GCC vor einiger zeit mal ausprobiert, als ich noch keine entwicklungsumgebung für ARMs hatte. ich fands alles andere als berauschend. wenn du damit zufrieden bist, ist's doch OK. aber probier doch mal code:blocks, vielleicht gefällt dir das ja besser.
noobLolo schrieb:
ich würd auch lieber vsc++ verwenden aber das kann ich mir nicht leisten
es gibt eine freie version (schimpft sich 'express edition' oder so). die ist aber riesengross, schiebt dir eine menge müll auf die platte und der compiler ist noch nicht mal C99-fähig. lohnt sich also, meiner meinung nach, nicht.
-
früher oder später wirst dich doch mit einer ausgewachsenen ide anfreunden
-
noobLolo schrieb:
früher oder später wirst dich doch mit einer ausgewachsenen ide anfreunden
Schön wärs.
-
;fricky schrieb:
aber probier doch mal code:blocks
also der screenshot schaut schon sehr vielversprechend aus werd mir das gleich mal anschauen
-
nwp2 schrieb:
Das Verschieben würde ich irgendwie so machen:
verschlüsseltesZeichen = ((zuVerschlüsselndesZeichen>='a'&&zuVerschlüsselndesZeichen<='z') //a-z ||(zuVerschlüsselndesZeichen>='A'&&zuVerschlüsselndesZeichen<='Z'))? //A-Z (zuVerschlüsselndesZeichen-'a'+geheimeZahl)%26+'a': //a-z||A-Z-Zeichen werden bearbeitet zuVerschlüsselndesZeichen; //andere Zeichen bleiben gleich
hallo
könntest du das etwas verständlicher erläutern?
-
Wenn dir das mit dem ?: nichts sagt kuck mal hier: http://home.fhtw-berlin.de/~junghans/cref/SYNTAX/conditional.html.
Im Prinzip funktionierts so hier: Wert = Bedingung ? Wert wenn Bedingung wahr ist : Wert wenn Bedingung falsch ist. Tut dasselbe wieif(Bedingung) Wert = Wert wenn Bedingung wahr ist; else Wert = Wert wenn Bedingung falsch ist;
Und das habe ich dann benutzt.
verschlüsseltes Zeichen = zu verschlüsselndes Zeichen ist von a bis z oder A bis Z ? verschlüssel das Zeichen : verschlüssel das Zeichen nicht.Der Test, ob das zu verschlüsselnde Zeichen zwischen a und z oder A und Z liegt, ist ziemlich direkt in C ausgedrückt: zuVerschlüsselndesZeichen >= 'a' && zuVerschlüsselndesZeichen <= 'z'
Vielleicht war ich etwas geizig mit Leerzeichen. && ist ein logisches 'und' und || ist ein logisches 'oder'.Das Verschlüsseln geht so, dass zuerst das zu verschlüsselnde Zeichen in eine Zahl umgewandelt wird. Dabei ist a = 0, b = 1, ..., z = 25.
'a' ist eigentlich die ASCII-Nummer des Zeichens 'a'. Wenn man nun 'a'-'a' rechnet kommt 0 raus, 'b'-'a' ist 1, 'z'-'a' ist 25. Mir fällt gerade auf dass ich ein paar Sachen falsch gemacht habe, aber egal. Wenn wir also die Zahl durch zuVerschlüsselndesZeichen-'a' berechnet haben rechnen wir die geheime Zahl drauf und dann Modulo 25. Bei mir steht 26, ist aber falsch, geht nur bis 25 wegen der 0. Modulo 25, damit es nach dem 'z' wieder mit 'a' weitergeht. Und am Ende rechnen wir noch 'a' wieder drauf um aus der Zahl wieder das richtige ASCII-Zeichen zu machen.
Ich habe natürlich unterschlagen, dass man bei Großbuchstaben natürlich 'A' und nicht 'a' abziehen und addieren muss.Also nochmal:
verschlüsseltesZeichen = (zuVerschlüsselndesZeichen>='a'&&zuVerschlüsselndesZeichen<='z') ? //Wenn Zeichen von a-z dann (zuVerschlüsselndesZeichen-'a'+geheimeZahl)%25+'a' : //verschlüsseln mit 'a'-Trick ansonsten (zuVerschlüsselndesZeichen>='A'&&zuVerschlüsselndesZeichen<='Z') ? //Wenn Zeichen von A-Z dann (zuVerschlüsselndesZeichen-'A'+geheimeZahl)%25+'A' : //verschlüsseln mit 'A'-Trick, ansonsten zuVerschlüsselndesZeichen; //lassen wir das Zeichen so wie es ist //dasselbe nochmal mit if und else if (zuVerschlüsselndesZeichen>='a'&&zuVerschlüsselndesZeichen<='z') //Wenn Zeichen von a-z dann verschlüsseltesZeichen = (zuVerschlüsselndesZeichen-'a'+geheimeZahl)%25+'a'; //verschlüsseln mit 'a'-Trick else if (zuVerschlüsselndesZeichen>='A'&&zuVerschlüsselndesZeichen<='Z') //ansonsten wenn Zeichen von A-Z dann verschlüsseltesZeichen = (zuVerschlüsselndesZeichen-'A'+geheimeZahl)%25+'A'; //verschlüsseln mit 'A'-Trick else verschlüsseltesZeichen = zuVerschlüsselndesZeichen; //ansonsten lassen wir das Zeichen so wie es ist
Hat das geholfen oder bist du komplett verwirrt?
-
Bitte löschen
-
nwp2 schrieb:
Im Prinzip funktionierts so hier: Wert = Bedingung ? Wert wenn Bedingung wahr ist : Wert wenn Bedingung falsch ist. Tut dasselbe wie
if(Bedingung) Wert = Wert wenn Bedingung wahr ist; else Wert = Wert wenn Bedingung falsch ist;
Und das habe ich dann benutzt.
Wenn das genau wie if-else ist, wozu gibt's das dann überhaupt?
-
Weil es kürzer ist und weniger fehleranfällig.
int i = flag?0:1; //kürzer und weniger lesbar als int i; if (flag) i = 0; else i = 1;
Zum Beispiel muss man im obigen Beispiel verschlüsseltesZeichen immer einen Wert zuweisen. Mit der ?:-Notation sorgt man dafür, dass das immer passiert, man kann verschlüsseltesZeichen nicht keinen Wert zuweisen, das würde zu einem Compilerfehler führen. Bei if else kann man schnell mal einen Fall haben wo man eine Zuweisung vergisst.
Außerdem sollen Compiler bei der ?:-Notation besseren Code erzeugen als bei if else, aber wahrscheinlich können die inzwischen soweit optimieren dass das nicht mehr der Fall ist.Edit: Es ist übrigens nicht genau dasselbe. Die ?:-Notation hat einen Rückgabewert und die einzelnen Ausdrücke links und rechts vom Doppelpunkt müssen auch Rückgabewerte haben und die Typen müssen identisch mit dem zugewiesenen Wert sein.
Sowas zum Beispiel geht nicht:int *ip = (ip = malloc(sizeof *ip)) ? 0 : printf("Speicher alle\n");
printf gibt keinen int* zurück also geht das nicht.
-
nwp2 schrieb:
Weil es kürzer ist und weniger fehleranfällig.
int i = flag?0:1; //kürzer und weniger lesbar als int i; if (flag) i = 0; else i = 1;
macht du: int i = !flag; ist noch kürzer, *fg*
-
Warum ist
if a; else b;
eine Anweisung, unda ? b : c
ein Ausdruck?
-
Da musst du wohl Kernighan und Richie fragen, ich glaube die haben sich das ausgedacht.