tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
172
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Bastereo Bastereo ist offline Grünschnabel
    Registriert seit
    Oct 2011
    Beiträge
    3
    Hi Leute,

    ich habe mal eine Frage und zwar programmiere ich gerade ein Programm mit C. Der Inhalt ist gar nicht so sehr das entscheidene, sondern mehr folgendes:

    Ich habe eine Benutzereingabe in einer Funktion und gebe den eingegebene Wert mit return zurück in das main-Programm. Dort wird der Wert aber nicht so richtig erkannt, bzw. ich muss irgendwas anders oder geschickter deklarieren. Stehe gerade aufem Schlauch und seh das Brett vorm Kopf nicht, oder so ähnlich.
    Ich hoffe ihr könnt mir helfen, denn das ist bisschen ärgerlich grad.

    Fehlermeldung: Die variable "auswahl" ist gebraucht, ohne initalisiert zu sein.
    Wie löse ich das geschickter?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    
    #include <stdio.h>
     
    int eingabe(int auswahl);
     
    struct bestellsystem
    {
        int Bestellnummer;
        char Bezeichnung[100];
        float Preis;
    };
     
    int main(void)
    {
        int auswahl;
     
        struct bestellsystem b1 = { 1234, "Blabla", 299.99};
        struct bestellsystem b2 = { 5678, "Blibli", 999.99};
        struct bestellsystem b3 = { 9123, "Bloblo", 1299.99};
     
        printf("HAW Versand AG\n");
     
        eingabe(auswahl);
     
        if(auswahl==1)
        {
            printf("\nBestell-Nummer: ");
            printf("\nProduktbezeichnung: ");
            printf("\nPreis: ");
        }
     
        if(auswahl==0) return 0;
     
        printf("\n\n");
     
        return 0;
     
    }
     
    int eingabe(int auswahl)
    {
     
        printf("================================\n");
        printf("1: neues Produkt eingeben\n");
        printf("2: Katalog anzeigen\n");
        printf("0: Ende\n");
        printf("================================\n");
        scanf("%d", &auswahl);
     
        if(auswahl < 0 || auswahl > 2)
        {
            printf("\nFehlerhafte Eingabe! Bitte erneute Eingabe: ");
            printf("\n================================\n");
            printf("1: neues Produkt eingeben\n");
            printf("2: Katalog anzeigen\n");
            printf("0: Ende\n");
            printf("================================\n");
            scanf("%d", &auswahl);
        }
     
        return auswahl;
    }
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi und Willkommen bei tutorials.de

    zuerst was logisch Falsches bei eingabe:
    Was ist, wenn der benutzer die zweite Eingabe auch falsch macht?
    Statt dem if sollte ein while rein.

    Zum Hauptproblem:
    Du übergibst auswahl zu eingabe, obwohl es gar keinen Sinn macht.
    Es soll ja nur zurückgegeben werden.
    Weil du im main auswahl übergibst, ohne zuerst irgendwo einen Wert zugewiesen zu haben,
    kommt die Meldung.

    Lösung:
    1) Das "int auswahl" bei eingabe aus den () rausnehmen
    und stattdessen als erste Codezeile von eingabe nehmen.
    2) Statt
    Code cpp:
    1
    
    eingabe(auswahl);
    im main das:
    Code cpp:
    1
    
    auswahl = eingabe();
    schreiben.

    Fürs nächste Mal:
    Bitte gleich die Zeile der Fehlermeldung angeben.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Bastereo Bastereo ist offline Grünschnabel
    Registriert seit
    Oct 2011
    Beiträge
    3
    Ich danke schonmal für die superschnell Antwort, aber hab glaub ich ein kleinen Denkblockade bei dem Problem. Danke für die Tipps.
    Das hatte ich auch schon probiert, aber folgende Fehlermeldung taucht nun auf:

    'eingabe': Funktion akzeptiert keine 0 Argumente
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hast du beide Schritte gemacht?

    Code für den Ersten:
    Code cpp:
    1
    2
    
    int eingabe(int auswahl)
    {
    wird zu
    Code cpp:
    1
    2
    3
    
    int eingabe()
    {
        int auswahl;
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    Bastereo Bastereo ist offline Grünschnabel
    Registriert seit
    Oct 2011
    Beiträge
    3
    Da sieht man doch tatsächlich manchmal den Wald vor lauter Bäumen nicht, meine Güte
    Ist aufgeklärt, ich danke dir. Die Deklaration der Funktion hat man vergessen... So ein dämlicher Fehler, aber manchmal kommt man iwie nicht drauf. Jedenfalls Danke und auf Bald
     

Ähnliche Themen

  1. problem mit funktion
    Von sugar im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 20.01.11, 13:12
  2. Problem mit int 13h, funktion 02h
    Von C Coder im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 29.01.07, 20:19
  3. if-funktion problem ?!
    Von mexximillian im Forum PHP
    Antworten: 4
    Letzter Beitrag: 16.01.04, 17:49
  4. Problem mit Funktion (do-while)
    Von pxlArtizzt im Forum PHP
    Antworten: 1
    Letzter Beitrag: 09.09.03, 14:51
  5. Problem mit der Such funktion
    Von lausi im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.08.03, 10:15