C scanf wird einfach übersprungen

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Cephalor, 08.01.2013.

  1. #1 Cephalor, 08.01.2013
    Cephalor

    Cephalor Benutzer

    Dabei seit:
    15.02.2012
    Beiträge:
    33
    Zustimmungen:
    0
    Hi,

    ich bin gerade dabei ein Programm zu schreiben, was vom Benutzer zwei Vektoren der Länge 3 einliest, in einem array speichert und in zwei extra Funktionen das Skalarprodukt und das Kreuzprodukt dieser beiden Vektoren berechnet. Nur die Eingabe sieht ungefähr so aus:

    int main(){

    enum{DIM=3};
    double a[DIM],b[DIM];

    printf("Bitte Vektor a eingeben (in der Form (a1,a2,a3)).\n");
    scanf("(%lf,%lf,%lf)",&a[0],&a[1],&a[2]);

    printf("Bitte Vektor b eingeben (in der Form (b1,b2,b3)).\n");
    scanf("(%lf,%lf,%lf)",&b[0],&b[1],&b[2]);
    }

    Ich hab mal zur Kontrolle die Vektoren nachher ausgeben lassen, der erste wird auch super eingelesen, allerdings wird beim 2. der scanf Befehl einfach übersprungen, man kann nichts eingeben.
    Ich hoffe ihr habt mein Problem verstanden und könnt mir helfen.

    MfG

    Cephalor
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 xandros, 09.01.2013
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    int main() erfordert ein return!
    Innerhalb der Funktionsklammern ist kein return zu finden. Dein Code sollte also zumindest mal mit
    Code:
    return 0
    }
    enden....

    Daneben wuerde ich scanf aus dem von dir geschilderten Grund immer in einer While-Schleife verwenden, die scanf() so lange ausfuehrt, bis eine korrekte Eingabe erfolgt ist. (Beispiel aus dem Bauch raus und daher ohne Anspruch auf korrekte Funktion!!)
    Code:
    ...
    int check = 1;
    printf("Bitte Vektor a eingeben (in der Form (a1,a2,a3)).\n");
    while(check){
    check = !scanf("(%lf,%lf,%lf)",&a[0],&a[1],&a[2]);
    }
    check=1;
    printf("Bitte Vektor b eingeben (in der Form (b1,b2,b3)).\n");
    while(check){
    check = !scanf("(%lf,%lf,%lf)",&b[0],&b[1],&b[2]);
    }
    return 0;
    ...
    Unter C++ wuerde ich sogar auf stdio verzichten und iostream und cin/cout verwenden. Aber das steht unter plain C ja leider nicht zur Verfuegung.
     
Thema: C scanf wird einfach übersprungen
Besucher kamen mit folgenden Suchen
  1. c scanf uebersprungen

Die Seite wird geladen...

C scanf wird einfach übersprungen - Ähnliche Themen

  1. Neue Grafikkarte Pc Schaltet sich einfach aus und neustartet bei Leistungsstarken Spielen

    Neue Grafikkarte Pc Schaltet sich einfach aus und neustartet bei Leistungsstarken Spielen: Ich habe vor mehreren Wochen von meiner Geforce GTX 285 Grafikkarte auf die GTX 570 von EVGA Overclocked gewechselt da ich diese brauchte um...
  2. C# und MySQL

    C# und MySQL: Hallo zusammen! Ich bräuchte dringend hilfe von Experten, da ich ein totaler Anfänger bin. Ich habe eine vorhandene Excel Tabelle. Diese soll in...
  3. Aufrunden einer int in C

    Aufrunden einer int in C: Hi Leute, wie kann ich in C eine Zahl wie 53 auf die nächst größere Zahl welche durch 10 Teilbar ist aufrunden? Also von 53 auf 60 oder von 44...
  4. Komme einfach nicht mehr weiter.

    Komme einfach nicht mehr weiter.: Also folgendes ist geschehen Ich wollte über das Reset-menu von Windows 10 meinen Laptop zurücksetzten und auch dafür sorgen das er alle Dateien...
  5. Computer startet einfach ohne Vorwahnung neu

    Computer startet einfach ohne Vorwahnung neu: Hallo, ich habe seit einigen Wochen das Problem, dass mein PC sich immer neustartet ohne etwas zu sagen. Auch nach dem Neustart bekomme ich...