Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

05.01.2006, 16:12

char variable

hi,

bin jez bei den if then else schachtelungen und habe mir mal eine eigene aufgabe gestellt: einen einfachen taschenrechner

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>

using namespace std;

int main ()
{
    float fzahl1, fzahl2, fergebnis;
    char addition = "addition";
    char subtraktion = "subtraktion";
    char multiplikation = "multiplikation";
    char division = "division";
    char operation;

    cout << "Geben Sie bitte eine Zahl an.\n";
    cin >> fzahl1;
    cout << "Bitte geben Sie die gewünschte Operation ein:\n";
    cin >> operation;
    cout << "Nun geben Sie bitte eine zweite Zahl an, mit der Sie rechnen möchten.\n";
    cin >> fzahl2;
    
    
    
    
    if (operation == addition)
    {
        fergebnis = fzahl1 + fzahl2;
        cout << "\nErgebnis: " << fergebnis << endl;
    }
    else 
        cout << "Keine gültigen Zahlen und/oder Operationen.\n";
    
    
    
    if (operation == subtraktion)
    {
        fergebnis = fzahl1 - fzahl2;
        cout << "\nErgebnis: " << fergebnis << endl;
    }
    else 
        cout << "Keine gültigen Zahlen und/oder Operationen.\n";
    
    
    
    if (operation == multiplikation)
    {
        fergebnis = fzahl1 * fzahl2;
        cout << "\nErgebnis: " << fergebnis << endl;
    }
    else 
        cout << "Keine gültigen Zahlen und/oder Operationen.\n";
    
    
    
    if (operation == division)
    {
        fergebnis = fzahl1 / fzahl2;
        cout << "\nErgebnis: " << fergebnis << endl;
    }
    else 
        cout << "Keine gültigen Zahlen und/oder Operationen.\n";
    return 0;
}


wenn ich compiliere kommen 4 warnungen

error C2440: 'initializing' : 'char [9]' kann nicht in 'char' konvertiert werden
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

tja das verstehe ich nun nicht ?!

danke für die hilfe

Anonymous

unregistriert

2

05.01.2006, 16:16

C-/C++-Quelltext

1
char addition = "addition";

char fasst nur 1 Zeichen!

Wenn musst du folgendes machen:

C-/C++-Quelltext

1
char addition[] = "addition";

bzw.

C-/C++-Quelltext

1
char *addition = "addition";

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

3

05.01.2006, 16:20

C-/C++-Quelltext

1
char addition = "addition"; 

hier willst du einer char variablen einen String zuweisen...
char kann nur so initialisiert werden:

C-/C++-Quelltext

1
char dummy = 'A';

überhaupt is das ne schlechte Rangehensweise....
lass doch den Benutzer ne zahl (1,2,3 oder 4) eingeben und dann entscheidest du danach ob es addition (1), sub (2), multi (3), oder div (4) ist
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Anonymous

unregistriert

4

05.01.2006, 16:25

danke für die schnellen antworten ich probiers gleich mal

ach ne zahl is finde ich umständlich aber im prinzip is es doch das selbe!

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

5

05.01.2006, 16:28

== klappt bbei char auch nich

mach std::basic_string<wchar_t> addition = L"addition";
...
std::basic_string<wchar_t> operation;

dann

std::wcin>>operation; //edit: SORRY NIX DA

dann kannst du auch schreiben: operation == addition
Was es alles gibt, das ich nich brauche - Aristoteles

Anonymous

unregistriert

6

05.01.2006, 16:29

CW_Kovok
*hust*
es ist nicht cin sondern wcin ;)

Anonymous

unregistriert

7

05.01.2006, 16:47

k bei meinem wissensstand is es wohl dann doch besser

a, s, m, d oder 1, 2, 3, 4 zu nehmen!

danke für die mühen

8

05.01.2006, 19:14

öhm und

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
if (operation == addition) 
   { 
      fergebnis = fzahl1 + fzahl2; 
      cout << "\nErgebnis: " << fergebnis << endl; 
   } 
   else 
      cout << "Keine gültigen Zahlen und/oder Operationen.\n"; 
    
    
    
   if (operation == subtraktion) 
   { 
      fergebnis = fzahl1 - fzahl2; 
      cout << "\nErgebnis: " << fergebnis << endl; 
   } 
    else 
       cout << "Keine gültigen Zahlen und/oder Operationen.\n"; 
    
    
    
   if (operation == multiplikation) 
   { 
      fergebnis = fzahl1 * fzahl2; 
      cout << "\nErgebnis: " << fergebnis << endl; 
   } 
   else 
      cout << "Keine gültigen Zahlen und/oder Operationen.\n"; 
    
    
    
   if (operation == division) 
   { 
      fergebnis = fzahl1 / fzahl2; 
      cout << "\nErgebnis: " << fergebnis << endl; 
   } 
   else 
      cout << "Keine gültigen Zahlen und/oder Operationen.\n"; 
   return 0;


ergibt keinen sin... du gibtst immer, wenn keine addition eingegeben wurde, mindestens einemal "keine gültige Zahl und/oder Operation aus"... es scheint zwar so, als wolltest du es so, aber mach besser so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (operation == addition) 
{ 
    fergebnis = fzahl1 + fzahl2; 
    std::cout << "\nErgebnis: " << fergebnis << std::endl; 
} 
else if (operation == subtraktion) 
{ 
    fergebnis = fzahl1 - fzahl2; 
    std::cout << "\nErgebnis: " << fergebnis << std::endl; 
}   
else if (operation == multiplikation) 
{ 
    fergebnis = fzahl1 * fzahl2; 
    std::cout << "\nErgebnis: " << fergebnis << std::endl; 
} 
else if (operation == division) 
{ 
    fergebnis = fzahl1 / fzahl2; 
    std::cout << "\nErgebnis: " << fergebnis << std::endl; 
} 
else 
    std::cout << "Keine gültigen Zahlen und/oder Operationen.\n"<< std::endl;
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

9

06.01.2006, 15:38

ja stimmt so wollt ichs eigentlich haben
hatte aber den anderen teil des kapitels noch nicht gelesen deswegen kannte ich das mit dem else if noch nicht

aber danke für den hinweis

ps. habe jez + - * / genommen

Anonymous

unregistriert

10

06.01.2006, 18:46

Zitat von »"nix da"«


C-/C++-Quelltext

1
char *addition = "addition";


Ne extrem schlechte Idee, wenn schon nen Zeiger, dann auch richtig:

C-/C++-Quelltext

1
const char *addition = "addition";

Werbeanzeige