Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Anfänger



Blackbug
02-12-2007, 16:44
Hallo ich bin ein Anfänger in Sachen C,C++ und komme bei der switch funktion nicht weiter. Hier ist das was ich gemacht habe, wäre sehr nett wenn mir einer sagen könnte was noch fehlt bzw. falsch ist.
Es soll ein Notenprogramm werden, wenn man z.b. die note 1 eingibt das dann die Ausgabe "Die Note ist Sehr gut".

#include <stdio.h>
#include <conio.h>

int main (void)
{
int note;
printf("Bitte geben Sie ihre Note ein: ");


switch (note){
case '1' :
printf("Die Note ist Sehr gut!\n");
break;

case '2' :
printf("Die Note ist gut!\n");
break;

case '3' :
printf("Die Note ist befriedigend!\n");
break;

case '4' :
printf("Die Note ist ausreichend!\n");
break;

case '5' :
printf("Die Note ist mangelhaft!\n");
break;

case'6' :
printf("Die Note ist ungenügend!\n");
break;


default :
printf("Eingabe Ungültig!\n");
}

getch();
}

Danke schonmal im vorraus!

BLUESCREEN3D
02-12-2007, 17:05
Problem 1: Du fragst mit switch die Variable note ab, der du aber noch keinen Wert zugewiesen hast.
Problem 2: Die Eingabe mittels getch() findet nach der Ausgabe statt - das kann doch nicht gehen :D

Einfachste Lösung: Folgendes vor das switch packen:

note = getch();

Das Programm ist übrigens eher C als C++.
Falls du C++ lernen willst, guck dir cin und cout an.

Außerdem gibt es conio.h und damit getch() nur unter Windows, also benutz lieber getchar() aus stdio.h. Dann muss man allerdings nach der Eingabe Enter oder Ctrl+D drücken.

Blackbug
02-12-2007, 17:26
ah super ;) danke
ja das ist C++ habe ich gerade in der Schule angefangen, daswegen.
Jetzt hab ich noch ein Problem wenn ich jetzt z.b. "2" eingebe kommt gleich "die note ist gut" anstatt das erst zahl kommt und dann ich enter drücken dann die ausgabe mit "die note ist gut". Wäre nett wenn du mir nochmal helfen könntest.

undefined
02-12-2007, 17:37
Du schreibst INT als char auch char ist in dem Sinne eine Zahl ;)
Entferne die einfachen ausrufungszeichen.


switch(var)
{
case 1:
{
std::cout << "Erster Wert" << std::endl;
}
break;
/* u.s.w */
}

Blackbug
02-12-2007, 17:39
gibt es da auch noch eine andere möglichkeit?
weil z.b.die funktion cout, hatte ich noch nicht

undefined
02-12-2007, 17:57
Auf die schnelle und mich die anderen Steinigen werden für den Mischmash :D


/*
* g++ -D_GNU_SOURCE -Wall -W -Wextra einstieg.cpp -o einstieg
*/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int note;
std::cout << "Bitte geben Sie ihre Note ein: ";
scanf("%d", &note);
switch (note)
{
case 1:
std::cout << "Die Note ist Sehr gut!\n" << std::endl;
break;
case 2:
std::cout << "Die Note ist gut!\n" << std::endl;
break;
case 3:
std::cout << "Die Note ist befriedigend!\n" << std::endl;
break;

case 4:
std::cout << "Die Note ist ausreichend!\n" << std::endl;
break;

case 5:
std::cout << "Die Note ist mangelhaft!\n" << std::endl;
break;
case 6:
std::cout << "Die Note ist ungenügend!\n" << std::endl;
break;
default :
std::cout << "Eingabe Ungültig!\n" << std::endl;
}
return EXIT_SUCCESS;
}

Blackbug
02-12-2007, 18:00
sry aber ich verstehe das nicht, weil wir haben das noch nicht gehabt. Mhmm, das ist alles kacke :D

undefined
02-12-2007, 18:03
Dann hast du ein schlechtes Buch oder Lehrer.
Das hier ist das erste Programm was man in c++ Schreibt.


#include <iostream>
int main(void)
{
std::cout << "Hallo Welt" << std::endl;
return 0;
}

undefined
02-12-2007, 18:13
PS: Das dürfte dir weiter Helfen.
http://www.highscore.de/cpp/einfuehrung/
http://www.highscore.de/cpp/aufbau/

Blackbug
02-12-2007, 18:13
jo das kann sein, wir haben das auch anders geschrieben xD...

so haben wir Hello World geschrieben:

#include <stdio.h>

void main (void)
{
printf("Hallo Welt\n");
fflush(stdin); getchar();
}

undefined
02-12-2007, 18:17
Das ist C und vor allem ist es nicht Plattform unabhängig.
Dein Lehrer ist Windows/Borland verseucht.
Das hatte ich mir schon gedacht als ich <conio.h> ohne abfrage in deiner Datei gesehen habe.


/*
* gcc -D_GNU_SOURCE -Wall -W -Wextra einstieg.c -o einstieg
*/
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int note;
printf("Bitte geben Sie ihre Note ein: ");
scanf("%d", &note);
switch (note)
{
case 1:
printf("Die Note ist Sehr gut!\n");
break;
case 2:
printf("Die Note ist gut!\n");
break;
case 3:
printf("Die Note ist befriedigend!\n");
break;

case 4:
printf("Die Note ist ausreichend!\n");
break;

case 5:
printf("Die Note ist mangelhaft!\n");
break;
case 6:
printf("Die Note ist ungenügend!\n");
break;
default :
printf("Eingabe Ungültig!\n");
}
return EXIT_SUCCESS;
}

BLUESCREEN3D
02-12-2007, 20:15
Jetzt hab ich noch ein Problem wenn ich jetzt z.b. "2" eingebe kommt gleich "die note ist gut" anstatt das erst zahl kommt und dann ich enter drücken
Dann benutzt du immernoch getch() und nicht getchar().


so haben wir Hello World geschrieben:

#include <stdio.h>

void main (void)
{
printf("Hallo Welt\n");
fflush(stdin); getchar();
}
Das ist eindeutig C und kein C++.
Dann müssen dich cin, cout usw. erstmal nicht interessieren.

@undefined:

Du schreibst INT als char auch char ist in dem Sinne eine Zahl ;)
Entferne die einfachen ausrufungszeichen.
Nein, sein Code will wirklich mit chars vergleichen. getchar liefert zwar ein int, aber darin ist eig. ein char.


printf("Die Note ist Sehr gut!\n");
Kennst du puts()?
Es muss nicht immer printf() sein :D