Was kann ich lernen?

Juare

Grünschnabel
Hallo,

da ich das Fach Programmieren in der Schule habe und wir gerade auf die Konsole umgestiegen sind wollte ich euch fragen an was ich mich denn alles so wagen könnte ?

/* C */
 
Hab grade was geschrieben wie findet ihr den Code ?

Code:
#include <stdio.h>

        int main () {

        char name[] = {" "};
        char klasse[] = {" "};
        unsigned int if1;

        printf (" ####TESTPROGRAMM - V0.0.1####\n\n ");

        printf ("Zu unserer Sicherheit benötigen wir noch ein paar Daten von Ihnen.\n ");

        printf ("Name: ");             /* Name eingeben */
        scanf  ("%s", &name);         /* Name einlesen */

        printf (" Klasse: ");        /* Klasse eingeben */
        scanf  ("%s", &klasse);     /* Klasse einlesen */

        printf (" Danke für die Angabe Ihrer Daten.\n ");
        printf ("Sie haben folgendes angegeben ""Name: %s #""# Klasse: %s\n", name,klasse);

                printf (" Bitte wählen sie ein Menü aus ""%s\n", name);{

                        printf (" < 1 > Daten ändern\n " );{
                        printf ("< 2 > Programm beenden\n ");
                        printf ("Zahl angeben:\n ");
                        scanf  ("%d", &if1);

                                if ("%d", if1 == 1 ){
                                        printf (" Neuen Namen eingeben: ");
                                        scanf  ("%s", &name);
                                        printf (" Ihre Daten wurden geändert"" %s!\n", name);
                                }

                                else {
                                        printf (" Programm wurde beendet\n");
                                        return 0;
                                }
                        }




                }






        }
 
Also rein vom Aussehen würde ich es einmal so machen, dass du zwischen einem geschwungenen Klammerpaar den Text einrückst:
C++:
#include <stdio.h>

int main()  {
    int a;

    for (;;)    {
        printf ("kein Sinn");
    }
}


Außerdem solltest du geschwungene Klammern nur machen, wenn es sich auch um einen Block handelt. Nach dem printf() in Zeile 22 z.B. gehört so etwas eigentlich nicht.


C++:
char name[] = {" "};
Das zusammen mit dem scanf() ist sehr gefährlich! Hier wird ein Array mit der Größe 2 Bytes erstellt (das Leerzeichen und das \0). Das bedeutet wenn du bei scanf() mehr als ein Zeichen eingibst, greifst du schon auf Speicher zu, der dir nicht gehört.
Besser:
C++:
#define MAXNAME 50
...
char name[50] = "";   // Die {} kannst du auch weglassen


Bei scanf(), wenn du Text in ein Array schreibst, das & weglassen! Der Name des Arrays repräsentiert ja bereits die Anfangsaddresse des Arrays.
C++:
scanf  ("%s", klasse);


C++:
 if ("%d", if1 == 1 )
Im if hat das %d nichts verloren. Das brauchst du nur bei den Funktionen printf() und scanf() und ähnlichen.
C++:
 if (if1 == 1)


C++:
printf ("Sie haben folgendes angegeben ""Name: %s #""# Klasse: %s\n", name,klasse);
Die doppelten Hochkomma vor Name und zwischen den # lass auch weg. Was willst du damit machen?


So das war jetzt mal alles, was ich auf die Schnelle sehen konnte.

Lg
 
Ich werde mir deine Tipps ansehen und mein Programm mal abändern das mit dem Speicher habe ich auch bemerkt zudem kenne ich einige Befehle die du gesagt hast nicht ^^ wir machen C seit 8 Stunden bin halt einer von denen die vorarbeiten.

Wenn ich es fertig habe editiere ich den Beitrag.
Aber leider funkt. mein Putty irgendwie nicht richtig und stürzt momentan immer ab.
 
Hi

ibafluss hat das Wesentliche zum Code schon gesagt, nur noch ein Hinweis zum Forum:
Bitte nicht alte Posts immer wieder editieren, nach dem darauf schon Antworten vorhanden sind.
Die würden dadurch nämlich sinnlos werden. Mach einfach eine neue Antwort darunter.

Zum Thema: Nur so aus Interesse: Was hat Putty damit zu tun?
Worauf programmiert ihr da?
 
Hi

ibafluss hat das Wesentliche zum Code schon gesagt, nur noch ein Hinweis zum Forum:
Bitte nicht alte Posts immer wieder editieren, nach dem darauf schon Antworten vorhanden sind.
Die würden dadurch nämlich sinnlos werden. Mach einfach eine neue Antwort darunter.

Zum Thema: Nur so aus Interesse: Was hat Putty damit zu tun?
Worauf programmiert ihr da?

Ehm über nen Linux Server
 
Hm...naja, wenn man will...
denk mir nur, dass solche Programme auch am eigenen lokalen Rechner funktionieren würden...
 
Zurück