aoe Geschrieben 8. Februar 2009 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 8. Februar 2009 Teilen Geschrieben 8. Februar 2009 Dein Code sollte schon in einer Funktion stehen, vorzugsweise main(). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
aoe Geschrieben 8. Februar 2009 Autor Teilen 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 ===| Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 8. Februar 2009 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Blutelf05 Geschrieben 8. Februar 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.