|
You last visited: Today at 22:40
Advertisement
Code fehler
Discussion on Code fehler within the C/C++ forum part of the Coders Den category.
01/10/2014, 13:11
|
#1
|
elite*gold: 70
Join Date: Apr 2013
Posts: 365
Received Thanks: 60
|
Code fehler
Hay,
ich hab da irgendwas falsch gemacht...
Code:
#include<stdio.h>
int main() {
int a = 0.0;
char b = 0;
int c = 0.0;
char d = 0;
int e = 0.0;
int ergebnis = 0.0;
printf("Taschenrechner\n"); //Variabel bestimmung
printf("Geben sie die 1. Zahl ein: "); //und scanen
scanf("%d",&a); //oder auslesen
printf("Geben sie die rechenart ein: "); //der eingegebenen zahlen
scanf("%c",&b); //oder zeichen
printf("Geben sie die 2. Zahl ein: "); //
scanf("%d",&c); //
printf("Geben sie die rechenart ein: "); //
scanf("%c",&d); //
printf("Geben sie die 3. Zahl ein: "); //
scanf("%d",&e); //
if(b == '+') {
printf("\n Addition wird durchgeführt.");
ergebnis = a + b;
}
}
Ich habe nicht die möglichkeit bei den operanten was einzugeben der satz wird nur ausgegeben Kann mir jemand sagen wo der Fehler ist?
|
|
|
01/10/2014, 14:41
|
#2
|
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
|
|
|
|
01/10/2014, 16:03
|
#3
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Oder:
Code:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Nach jedem scanf
|
|
|
01/10/2014, 16:53
|
#4
|
elite*gold: 0
Join Date: Mar 2013
Posts: 18
Received Thanks: 3
|
Erstmal solltest du grundsätzlich deine Integer-Werte nicht mit einem 0|.0| deklarieren, weil man das Gefühl erhält, dass du double- oder float-werte verwenden wolltest.
Es reicht eine einfach 0, da int-Zahlen Ganzzahlen sind.
(Ähnliches sollte man beim "char"-Datentyp beachten[Bitte nicht mit einer einfachen 0 initialisieren.])
Dann wäre es hilfreich, wenn du den Satz auch auf dem Bildschirm zeigst und nicht nur eine einfache Rechnung durchführst.
Heißt:
printf("\n Addition wird durchgeführt.\nErgebnis: {0}",a+b);
Versuch es mal damit.
|
|
|
01/10/2014, 17:08
|
#5
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Quote:
Originally Posted by MrMokey
(Ähnliches sollte man beim "char"-Datentyp beachten[Bitte nicht mit einer einfachen 0 initialisieren.])
|
Das ist egal.
|
|
|
01/10/2014, 17:13
|
#6
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by qkuh
Oder:
Code:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Nach jedem scanf
|
Wenn er C nutzt, solltest du ihm keinen C++ Code geben.
|
|
|
01/10/2014, 17:17
|
#7
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Kann auch C++ sein, aber okay  Hatte da jetzt nicht genau draufgeschaut.
Code:
while ((ch = getchar()) != '\n' && ch != EOF);
|
|
|
01/10/2014, 17:27
|
#8
|
elite*gold: 0
Join Date: Mar 2013
Posts: 18
Received Thanks: 3
|
Quote:
Originally Posted by qkuh
Das ist egal.
|
Die Lesbarkeit des Quellcodes sollte immer hoch sein.
Ist dementsprechend nicht egal. Besser man lernt es bereits zu Anfang.
|
|
|
01/10/2014, 17:36
|
#9
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Ob da nun 0 oder '\0' steht. Das ändert nicht allzu viel an der Lesbarkeit. MMn jedenfalls. Kann jeder machen wie er mag. Normalerweise verdeutlichen die Variablennamen schon, ob es sich konkret um eine Zahl oder ein Zeichen handelt.
|
|
|
01/10/2014, 18:00
|
#10
|
elite*gold: 0
Join Date: Mar 2013
Posts: 18
Received Thanks: 3
|
Normalerweise schon, aber garantieren kann man's nicht und hilfreich ist es (meiner Meinung nach) immer, wenn man auch in der Deklaration klar ersichtlich macht um welchen Typ es sich handelt.
|
|
|
01/10/2014, 19:05
|
#11
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by qkuh
Kann auch C++ sein, aber okay  Hatte da jetzt nicht genau draufgeschaut.
Code:
while ((ch = getchar()) != '\n' && ch != EOF);
|
Es ist definitiv C.
Quote:
Originally Posted by MrMokey
Die Lesbarkeit des Quellcodes sollte immer hoch sein.
Ist dementsprechend nicht egal. Besser man lernt es bereits zu Anfang.
|
Quote:
Originally Posted by MrMokey
Normalerweise schon, aber garantieren kann man's nicht und hilfreich ist es (meiner Meinung nach) immer, wenn man auch in der Deklaration klar ersichtlich macht um welchen Typ es sich handelt. 
|
Hast du vergessen, dass char durchaus auch ein integraler Typ ist?
Ich wüsste nicht, wieso ich Escapesequenzen nutzen sollte, um ein Byte mit dem Wert 0 zu belegen.
Und in der Deklaration sieht man es am Datentyp selbst
|
|
|
01/10/2014, 20:34
|
#12
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Woran siehst du, dass es definitiv C ist?
|
|
|
01/10/2014, 22:14
|
#13
|
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
|
Quote:
Originally Posted by qkuh
Woran siehst du, dass es definitiv C ist?
|
Paar Unterschiede mal als kleines Bsp.:
C
Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int zahl = 0;
printf ("Geben Sie die erste Zahl ein: ");
scanf ("%3d", &zahl);
printf("Eingegebene Zahl: %d", zahl);
return EXIT_SUCCESS;
}
C++
Code:
#include <iostream>
int main(int argc, char **argv)
{
int zahl;
std::cout << "Bitte Zahl eingeben!\n";
std::cin >> zahl;
std::cout << "Eingegebene Zahl: " << zahl;
return 0;
}
Ich hoffe du kannst die Unterschiede erkennen.
|
|
|
01/11/2014, 00:50
|
#14
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Trotzdem kann es theoretisch cpp sein, auch wenn es aussieht wie C. Vorallem seh ich da auch nichts vom C95 oder C99 Standard.
|
|
|
01/11/2014, 10:14
|
#15
|
elite*gold: 0
Join Date: Mar 2013
Posts: 18
Received Thanks: 3
|
Quote:
Originally Posted by MrSm!th
Hast du vergessen, dass char durchaus auch ein integraler Typ ist?
Ich wüsste nicht, wieso ich Escapesequenzen nutzen sollte, um ein Byte mit dem Wert 0 zu belegen.
Und in der Deklaration sieht man es am Datentyp selbst 
|
Sind vielleicht einfach unterschiedliche Programmierstile, aber ich denke, dass solche Sachen, gerade bei Anfängern, die Fragen aufwerfen, ob hier nicht ein Zahlenwert gewünscht war statt eines Char-Wertes.
Ist meine persönliche Meinung
|
|
|
 |
|
Similar Threads
|
Fehler Code 39
07/13/2013 - Technical Support - 3 Replies
Was sind die uhrsachen für diesen Code ? würde mich mal interessieren damit ich es prüfen kann.
|
Mw3 Fehler Code
12/30/2012 - Call of Duty - 3 Replies
Hi
Immer wenn ich MW3 starte kommt dieser Fehler Code
http://www.facebook.com/ajax/messaging/attachment .php?attach_id=30c5ada89d3040e3b92d43c48d002657&am p;mid=id.292057917563753&hash=AQCayJu_8KT3466t
Und ich kann nicht spielen :(
Kann mir jemand sagen was ich machen muss ?
|
Fehler im Code :(
02/16/2012 - AutoIt - 8 Replies
hi,
ich bekomme eien fehlermeldung die ich nciht ganz verstehe, wo das problem liegt.
Kann da jemand bitte helfen?
Meldung:
Error: "Wend" statement with no matching "While" statemant.
Wo genau ist da der Fehler? :(
|
Fehler code 204
07/12/2011 - Combat Arms - 1 Replies
Hey ich wollt anfang CA zuspielen aber immer wen ich game starte kommt der fehler : An error has occurred with the hack prevention funcion. (Error Code = 204) The programm is shutting down. was kann ich tuhn ? damit es geht
|
Fehler im Code :|
05/14/2011 - AutoIt - 1 Replies
Wollte nen Spambot machen aber Irgendwo ist ein Fehler drin, habe aber keine Ahnung wo :|
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Spammer", 353, 110, 355, 183)
$Input1 = GUICtrlCreateInput("Text 1 (Rufchat)", 8, 8, 121, 21)
$Input2 = GUICtrlCreateInput("Text 2 (langsam)", 8, 40, 121, 21)
$Input3 = GUICtrlCreateInput("Text 3 (schnell)", 8, 72, 121, 21)
$Pause = GUICtrlCreateButton("Pause", 256, 16, 75, 25, 0)
|
All times are GMT +1. The time now is 22:41.
|
|