Zitat von
bischi
Musst du in C auch so machen - ist meiner Meinung nach auch für global verwendete Variablen durchaus richtig (bei C++, Java,... - dann hast du einen Block in welchem du siehst, welche Variablen alle gebraucht werden). Temporäre Variablen sollten allerdings so "weit" im Programm wie möglich definiert werden, da sie so nur für den lokalen Skope gültig sind und du viele komische Fehler verhindern kannst, weil gerade noch eine Variable von früher her gesetzt ist.
Ok,du hast mich überzeugt,ich versuche mir das nun so anzugewöhnen
Typecast - beispielsweise, wenn du aus einem int einen double machst; Oder eben aus einem char einen int.
So nennt man das also in der Fachsprache.
Gewöhn dir das _SOFORT_ wieder ab, weil:
- Unleserlicher Code (wenn du ihn später anschaust / jemandem anders gibst)
- Sehr fehleranfällig (ich glaub es war a - vielleicht wars aber auch b...)
- Schwer zu verifizieren, ob der Code auch das macht, was er soll, wenn du die Variablen nicht sinnvoll benennst und gut kommentierst.
Nachdem ich nun heute wieder am Programm gearbeitet habe und feststellen musste das die Variablen teilweise echt blöd sind,sehe ich es ein das es sinnvoll ist sie gleich richtig zu benennen.
@panzi: Hab gerade eben noch mal nachgesehen,jetzt funktioniert es komischerweise..
@Joghurt: Es ist leider so,dass ich noch nicht sonderlich viel Erfahrung mit C bzw C++ gemacht habe und es mir deshalb manchmal schwer fällt mir etwas zu überlegen wovon ich dann nicht mal sicher sein kann das das überhaupt funktioniert.Deshalb läufts bei mir öfters auf das "try and error" Prinzip hinaus.
@locus vivendi:
Danke für die Links!
edit:
Gerade eben bin ich auf einen Fehler gestoßen der mich verwirrt.Das unten stehende Programm hab ich zusammen mit 2 Parametern asgeführt,wobei der erste die Quelldatei sein soll und der zweite die Zieldatei.
Beim ersten mal ausführen hat das ganze wunderbar geklappt,doch jetzt produziert das Programm falsche Umwandlungen(Compiler Fehler tritt keiner auf). Ohne Parameter funktioniert das Programm auch ohne Fehler,deshalb kann meines Erachtens der Fehler nur bei der Parameterübergabe liegen?!
Code:
#include<iostream>
using namespace std;
int main(int argc,char *argv[]) //Parameter: 1.Parameter für Quelldatei 2.Parameter für Zieldatei
{
FILE *datei; //dateizeiger
datei=fopen(argv[1],"r"); //Textdatei "laden"
char string[800],umwandlung[800];
while(fgets(string,80,datei)) //zeilenweises ausgeben am Bildschirm
{
puts(string);
}
int laenge =strlen(string); //schauen wie lang der String ist
fseek(datei,0,0); //Dateizeiger an den Anfang setzen
for(int rauf_zaehler=0;rauf_zaehler<=laenge;rauf_zaehler++)
{
umwandlung[rauf_zaehler]=(char)umwandlung[rauf_zaehler]; //Umwandlung nach char
umwandlung[rauf_zaehler]+=1;
fseek(datei,1,1);
}
cout<<umwandlung<<endl;
datei=fopen(argv[2],"w");
fputs(umwandlung,datei);
}
edit2: Ich habe jetzt ein ältere Version von dem Programm geladen(dort wo ich noch diese schrecklich schlichte Benennung hatte) und dort das Programm so modifiziert sodass man Parameter übergeben kann,mit dem gehts jetzt komischerweise.
edit: Ich möchte mich nun noch mal bei allen Leuten hier im Forum für die Hilfe bedanken.
Hat super geklappt!
mfg klicke
Lesezeichen