Problem mit Funktion gets();



  • Hi Leute,

    hab hier ein kleines Problem mit der Funktion "gets()"
    Schaut Euch doch mal mein Quelltext an und sagt mir bitte "warum" die 2. eingegebene Zahl nicht angezeigt wird, sondern nur die 1. Zahl ?!

    #include <stdio.h>

    void main(void)

    {

    float zahl;

    float zahl2;

    char c_zahl[1];

    char c_zahl2[1];

    printf("\n\n");

    printf("\t Zahl1: ");

    gets(c_zahl);

    sscanf(c_zahl, "%9f", &zahl);

    printf("\n\tEigegebene 1. Zahl: %15.6f", zahl);

    printf("\n\n");

    printf("\t Zahl2: ");

    gets(c_zahl2);

    sscanf(c_zahl, "%9f", &zahl2);

    printf("\n\tEigegebene 2. Zahl: %15.6f", zahl2);

    printf("\n\n");

    }[/code]

    Bitte um Hilfe!

    M f G -> Robb.

    [ Dieser Beitrag wurde am 21.02.2003 um 19:35 Uhr von Robb editiert. ]



  • gets sollte man nicht verwenden - nimm lieber fgets
    ausserdem reicht dein speicher wahrscheinlich nicht aus!
    1 char ist n bisschen wenig

    mach doch gleich
    scanf("%f",&zahl);



  • Ich darf aber nur für die Eingabe die Funktion "gets" verwenden (so stehts in den PA). Kannst Du mir trotzdem weiterhelfen???



  • Original erstellt von Robb:
    Ich darf aber nur für die Eingabe die Funktion "gets" verwenden (so stehts in den PA).

    PA? was ist das?

    naja, dann machs so:
    nimm mal größeren speicher für c_zahl
    ausserdem ist das prefix c nicht nur unschön sondern auch falsch.
    wenn dann s, sz oder ca.

    wie willst du denn einlesen? beide zahlen in der selben zeile?
    dann so:

    char tenp[100];
    gets(temp);
    sscanf(temp,"%f ",&zahl);
    sscanf(temp,"%f",&zahl);
    

    und nicht vergessen:
    niemals gets verwenden.



  • jo, danke für die Tipps. Übrigens, PA = Prüfungsaufgaben.

    seeya -> Robb.


Anmelden zum Antworten