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

Lord-archimedes

Treue Seele

  • »Lord-archimedes« ist der Autor dieses Themas

Beiträge: 234

Wohnort: Hannover

  • Private Nachricht senden

1

02.01.2007, 13:35

Programmfehler

Hi ich folgendes Programm geproggt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <conio.h>
#include <string.h>

using namespace std;
void main(void)
{
  string Wort;
  bool Ende;
  Ende = false;
  do
  {
    cin >> Wort;
    if (Wort == "Ende")
    {
      Ende = true;
    }
  }
  while (Ende = false);
  getch ();
}

ich möchte das ich solange ein wot ingeben kann bis ich ende eingebe
Das funzt nicht warum ?
thx im vorraus

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

2

02.01.2007, 13:46

[STRIKE]Strings kannst du in C++ nicht mit == vergleichen. Such z.B. nach strcmp()[/STRIKE]
Edit: Ops, manchmal sieht man den Wald vor Baeumen nicht. Sorry!
"Have you tried turning it off and on again?"

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

02.01.2007, 13:52

Zitat von »"Chase"«

Strings kannst du in C++ nicht mit == vergleichen. Such z.B. nach strcmp()

Doch, std::string schon!
Der Fehler liegt in der Abbruchbedingung der do-while-Schleife:

C-/C++-Quelltext

1
while (Ende = false);


Ich überlass es mal dir, den Fehler selbst zu finden.

Lord-archimedes

Treue Seele

  • »Lord-archimedes« ist der Autor dieses Themas

Beiträge: 234

Wohnort: Hannover

  • Private Nachricht senden

4

02.01.2007, 14:17

ich hab jetzt

Quellcode

1
while (Ende = true);

geschrieben aber dann hängt er in einer endlos-Schleife.
ich hab echt kein plan wie e funzt......... :( :cry:
helft mir bitte
SCHNELL

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

02.01.2007, 14:35

C-/C++-Quelltext

1
2
3
4
5
  // ...

    if (Wort == "Ende") 
  // ...

  while (Ende = false);
  // ...


hm...


voraus schreibt man übrigens so ;)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

02.01.2007, 14:36

Schau dir doch nochmal genau das Kapitel über Bedingungen an :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Lord-archimedes

Treue Seele

  • »Lord-archimedes« ist der Autor dieses Themas

Beiträge: 234

Wohnort: Hannover

  • Private Nachricht senden

7

02.01.2007, 14:38

könnt ihr mir nicht einfach sagen wie es geht ???

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

02.01.2007, 14:40

das ist übrigens falsch:

C-/C++-Quelltext

1
2
3
#include <iostream.h>
#include <conio.h>
#include <string.h>


so ists richtig:

C-/C++-Quelltext

1
2
3
#include <iostream>
#include <conio.h>
#include <string>

Lord-archimedes

Treue Seele

  • »Lord-archimedes« ist der Autor dieses Themas

Beiträge: 234

Wohnort: Hannover

  • Private Nachricht senden

9

02.01.2007, 14:44

wenn ich aber

Quellcode

1
#include <iostream>

schreibe kommt ne Fehlermeldung
wenn ich dagegen

Quellcode

1
#include <iostream.h>

schreibe funzt es
also sagt mir bitte wo der Fehler in der Schleife liegt

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

02.01.2007, 14:45

was für einen compiler verwendest du?

C-/C++-Quelltext

1
#include <iostream.h>

ist nicht standardkonform und kompilliert bei mir z.b. gar nicht (VC++ 2005).


wir wollen, dass du selber draufkommst, weil dir das viel mehr bringt.

C-/C++-Quelltext

1
while( Ende = false );


da liegt der fehler und es liegt nicht am false und nicht am Ende.
überleg mal ganz genau was du da eigentlich machst und was du da eigentlich machen willst ;)

wenn dus jetzt immer noch nicht rausgefunden hast, schreib mal

C-/C++-Quelltext

1
while( false = Ende );


und schau was der compiler meckert...

noch eine letzter hinweis:

das ergebnis von

C-/C++-Quelltext

1
Ende = false;


ist immer false und

C-/C++-Quelltext

1
Ende = true;


ist immer true, ganz egal welchen wert Ende vorher hatte...

Werbeanzeige