C scanf wird einfach übersprungen

Diskutiere C scanf wird einfach übersprungen im Webmaster Hilfe / Programmierer Forum Forum im Bereich Computerprobleme; 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...

  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. Anzeige

    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:
    26.166
    Zustimmungen:
    116
    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. roter Balken bei Laufwerk c weg

    roter Balken bei Laufwerk c weg: Hallo, mein Problem ist, Laufwerk c zeigt plötzlich keinen roten Balken mehr an. (Speicher voll) Das Laufwerk an sich wird angezeigt.. Wie bekomme...
  2. 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...
  3. 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...
  4. 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...
  5. 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...