| Autor |
Nachricht |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 10645
|
_matze Mitglied
19:51:17 31.07.2012 Titel: |
|
Zitieren |
| Tufelix schrieb: | | ich meinte die zeile 12 im text der der übersetzer übersetzt -.- |
Und in welcher Zeile in deinem Code passiert der Fehler? |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
CCodex
Mitglied
Benutzerprofil
Anmeldungsdatum: 29.05.2010
Beiträge: 201
|
CCodex Mitglied
00:58:50 01.08.2012 Titel: |
|
Zitieren |
|
 |
hustbaer
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2006
Beiträge: 16057
|
hustbaer Mitglied
03:36:49 01.08.2012 Titel: |
|
Zitieren |
|
 |
Chris++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.05.2002
Beiträge: 782
|
Chris++ Mitglied
07:55:44 01.08.2012 Titel: |
|
Zitieren |
|
 |
Tufelix
Mitglied
Benutzerprofil
Anmeldungsdatum: 18.07.2012
Beiträge: 22
|
Tufelix Mitglied
10:50:55 05.08.2012 Titel: |
|
Zitieren |
Nun ich hab die "codiereSprache" jetzt zum laufen bekommen jetzt aber hängt die "vergleicheWort" funktion
| C++: | 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 63 64 65 | string vergleicheWort(vector<string> &Woerter
,vector<tSprache> &Sprache)
{
string Binärcode;
unsigned int c=0;
signed int bearbeiteteWoerter=Woerter.size()-1;
int Error=0;
int HEX=0;
while(bearbeiteteWoerter+1==0==false && Error==0 )
{
if("HEX"==Woerter[bearbeiteteWoerter].substr(0,3)){
Binärcode=Binärcode+HEXA(Woerter[bearbeiteteWoerter].substr(3,Woerter[bearbeiteteWoerter].size()-3));
bearbeiteteWoerter--;
}
while(Sprache[c].Name!=Woerter[bearbeiteteWoerter] && bearbeiteteWoerter<0==false && c<Sprache.size() && Error==0){
c++;
}
if(c>=Sprache.size()){
Error=1;
SetColor(13);
cout << "Fehler Befehl konnte nicht gefunden werden:"<<endl;
SetColor(15);
cout<<"Befehl:";
SetColor(12);
cout<<Woerter[bearbeiteteWoerter]<<endl;
SetColor(15);
cout<<"Zeile:";
SetColor(12);
cout<<Zeilenanz<<endl;
SetColor(15);
}
if(Error==0){
if(Sprache[c].Name==Woerter[bearbeiteteWoerter] && bearbeiteteWoerter<0==false && c<Sprache.size() ){
bearbeiteteWoerter--;
Binärcode=Binärcode+Sprache[c].Binärcode;
c=0;
}
}
}
return Binärcode;
} | |
Das problem ist das diese Schleife nicht anhalten will obwohl die bedingungen nicht erfüllt werden:
| C++: | while(bearbeiteteWoerter+1==0==false && Error==0 )
{ | |
hat wer ne idee an was das liegen könnte(eventuell debuggeneinstellungen ändern) |
|
|
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 10645
|
_matze Mitglied
08:45:51 06.08.2012 Titel: |
|
Zitieren |
| C++: | | while(bearbeiteteWoerter+1==0==false && Error==0 ) | |
Oh je, setz da mal Klammern! Wie meinst du es denn? So?
| C++: | | while(((bearbeiteteWoerter+1)==0)==false && Error==0 ) | |
Dann kannst du auch gleich != benutzen.
Es ist irgendwie nicht sehr schön, dass bearbeiteteWoerter rückwärts läuft und unter 0 sinken kann. Der Bezeichner sagt irgendwie was anderes aus. |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
Tufelix
Mitglied
Benutzerprofil
Anmeldungsdatum: 18.07.2012
Beiträge: 22
|
Tufelix Mitglied
10:35:54 06.08.2012 Titel: |
|
Zitieren |
| _matze schrieb: |
Es ist irgendwie nicht sehr schön, dass bearbeiteteWoerter rückwärts läuft und unter 0 sinken kann. Der Bezeichner sagt irgendwie was anderes aus.
|
jop ich weis,hatte ganz vergessen das man zahlen von rechts nach links schreibt .
mir ist der fehler erst beim 1 testlauf aufgefallen, hab dann einfach die schleife rückwärts laufen lassen
| _matze schrieb: |
Dann kannst du auch gleich != benutzen.
|
joar hatte anfangs gedacht das der fehler vielleicht das ungleich wäre, hab dann es mit einem false ausgetauscht
| _matze schrieb: |
Oh je, setz da mal Klammern! Wie meinst du es denn? So?
|
jop, hab jetzt wieder das ungleich eingebaut
| C++: | | while((bearbeiteteWoerter+1)!=0 && Error==0 ) | |
aber die schleife tut dadurch immernoch nicht |
|
|
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 10645
|
_matze Mitglied
11:00:26 06.08.2012 Titel: |
|
Zitieren |
| Tufelix schrieb: |
aber die schleife tut dadurch immernoch nicht  |
Dann nutze den Debugger! Die Schleife wird sicher verlassen, wenn die Bedingung nicht mehr erfüllt ist. Darauf kannst du dich verlassen. Aber nicht auf deinen Code. Den musst du überprüfen. Und das geht am einfachsten mit dem Debugger. Schau dir an, welche Werte deine Variablen wirklich zur Laufzeit haben und warum die Schleife nicht verlassen wird. |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
Tufelix
Mitglied
Benutzerprofil
Anmeldungsdatum: 18.07.2012
Beiträge: 22
|
Tufelix Mitglied
11:32:11 06.08.2012 Titel: |
|
Zitieren |
also der fehler tritt auf wenn bearbeitetewoerter der wert -1 hat und der debugger bei dem schleifenanfang ist wenn man dann einen schritt macht kommt die fehlermeldung
Schleifenanfang:
| C++: | | while(bearbeiteteWoerter!=-1 && Error==0 ) | | |
|
|
|
 |
Tufelix
Mitglied
Benutzerprofil
Anmeldungsdatum: 18.07.2012
Beiträge: 22
|
Tufelix Mitglied
11:40:26 06.08.2012 Titel: |
|
Zitieren |
fehlermeldung:
| Code: | | Unbehandelte Ausnahme bei 0x7c812afb in Editor.exe: Microsoft C++-Ausnahme: std::out_of_range an Speicherposition 0x0012f144.. | | |
Zuletzt bearbeitet von Tufelix am 11:40:49 06.08.2012, insgesamt 1-mal bearbeitet |
|
 |