Zum Inhalt springen

C - Probleme mit Strings, Casts & Co


Empfohlene Beiträge

Geschrieben

#include<ctype.h>

#include<stdio.h>


char eingabefeld[30];

double zahl;

double puffer = 0;


do

{


    scanf("%s", &eingabefeld[]);


    if (isdigit(eingabefeld[]) == true);

    {


        zahl = (double)eingabefeld[]; // Typ Umwandlung in double


    }


    else


        switch (eingabefeld[])

        {


        // Test


        case'+':


            puffer += zahl;


            break;


        }

    printf("%lf", puffer); // Test Ausgabe



}

while (getchar() != 'b');


}

Wenn ich das Programm übersetzen möchte, meldet CodeBlocks 3 Fehler, die ich nicht ganz verstehe. :confused:

tzi\Desktop\test.c|8|error: expected unqualified-id before "do"|

tzi\Desktop\test.c|38|error: expected unqualified-id before "while"|

tzi\Desktop\test.c|40|error: expected declaration before '}' token|

||=== Build finished: 3 errors, 0 warnings ===|

Aufgabe des Programmes sollte sein:

Eingegebene Zeichen und Zahlen aussortieren (in Opperatoren und Zahlen) und dann auswerten. Mehr nicht! Ich brauch dieses System um einen guten Taschenrechner für die Konsole zu schreiben. :(

Geschrieben

#include<ctype.h>

#include<stdio.h>


[B]int main (void)

{[/B]


    char eingabefeld[30];

    double zahl;

    double puffer = 0;


    do

    {


        scanf("%s", &eingabefeld[]);


        if (isdigit(eingabefeld[]) == true);

        {


            zahl = (double)eingabefeld[]; // Typ Umwandlung in double


        }


        else



            switch (eingabefeld[])

            {


                // Test


            case'+':


                puffer += zahl;


                break;


            }

        printf("%lf", puffer); // Test Ausgabe



    }

    while (getchar() != 'b');


[B]}[/B]

CodeBlocks meldet jetzt mehr Fehler!

Desktop\test.c||In function `int main()':|

tzi\Desktop\test.c|14|error: expected primary-expression before ']' token|

tzi\Desktop\test.c|16|error: expected primary-expression before ']' token|

tzi\Desktop\test.c|19|error: expected primary-expression before "double"|

tzi\Desktop\test.c|19|error: expected `)' before "double"|

tzi\Desktop\test.c|23|error: expected primary-expression before "else"|

tzi\Desktop\test.c|23|error: expected `;' before "else"|

||=== Build finished: 6 errors, 0 warnings ===|

Geschrieben

Zeile 14:

Die eckigen Klammern müssen weg. Überhaupt darfst du eckige Klammern ohne "Inhalt" nur bei der Deklaration eines Arrays benutzen.

Zeile 16:

isdigit kann nur einzelne Zeichen prüfen, kein ganzes Array auf einmal.

Und das Semikolon am Ende muss weg.

Zeile 19:

Diese "Typumwandlung" ist Unsinn. Schau dir mal die Funktion atof an.

Zeile 26:

switch funktioniert nicht mit Zeichenketten.

Geschrieben

Zeile 16:

du kannst in C nicht auf == true vergleichen (außer du hast true irrgendwo definiert)

da in C keine boolischen Variablen vorgesehn sind.

d.h. du müsstest if (isdigit(eingabefeld) != 0 ) oder if (isdigit(eingabefeld)) schreiben

Zeile 23:

Fehlen bei deinem else die geschweiften Klammern

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...