aoe Geschrieben 8. Februar 2009 Geschrieben 8. Februar 2009 #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.
Klotzkopp Geschrieben 8. Februar 2009 Geschrieben 8. Februar 2009 Dein Code sollte schon in einer Funktion stehen, vorzugsweise main().
aoe Geschrieben 8. Februar 2009 Autor Geschrieben 8. Februar 2009 #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 ===|
Klotzkopp Geschrieben 8. Februar 2009 Geschrieben 8. Februar 2009 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.
Blutelf05 Geschrieben 8. Februar 2009 Geschrieben 8. Februar 2009 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
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden