Fuhrparkverwaltung - benötige Rat bei Vorbereitung der Umsetzung...
-
Da mein debugger immer noch nicht geht, da er nicht vorhanden ist sprich in meiner MingW installation war keine gdb.exe, falls die jemand hat bitte hier hochladen sendspace.com oder direktlink, danke.
Vielleicht kanns einer von euch debuggen:
ich iteriere durch die Liste solange der Zeiger "ptr" nicht NULL ist UND solange die Anhängernummer in der Struktur ungleich der eingegeben Anhängernummer ist sprich sobald die Anhängernummer beide gleich sind müsste ich eigentlich aus der while schleife fliegen doch weit gefehlt... Ich gebe eine Anhängernummer ein und Name, suche danach dann und prompt gebt mein VS 2005 debugger fenster auf bzw. ein Fenster wo ich sagen kann ich will den VS 2005 als debugger festlegen... Ich benutze aber die Codeblocks IDE noch im MOment nur habe ich da keinen debugger ala gdb.exe... Kann mir jemand sagen warum die Suche nicht geht?
void suche_AnhaengerNummer() { struct anhaenger *ptr = anfang; int iAnNum; printf("Anhängernummer eingeben: "); scanf("%i", &iAnNum); while((ptr != NULL) && (ptr->iAnhaengerNummer != iAnNum)) { ptr = ptr->next; } printf("Die gesuchte Wagennummer ist %i \n", iAnNum); printf("Die Wagennummer lautet: %i und der Wagenname ist: %s \n",ptr->iAnhaengerNummer,ptr->sAnhaengerName); }
Und bitte nicht alle auf einmal antworten sonst habe ich das Gefühl hier redet noch jemand mit mir
-
Pelle schrieb:
Da mein debugger immer noch nicht geht, da er nicht vorhanden ist sprich in meiner MingW installation war keine gdb.exe, falls die jemand hat bitte hier hochladen sendspace.com oder direktlink, danke.
hast du nicht weiter oben geschrieben, dass du auch vs2005 besitzt? wenn ja, benutze dessen debugger. einen besseren gibt es nicht unter windoofs.
-
debugging-fan schrieb:
Pelle schrieb:
Da mein debugger immer noch nicht geht, da er nicht vorhanden ist sprich in meiner MingW installation war keine gdb.exe, falls die jemand hat bitte hier hochladen sendspace.com oder direktlink, danke.
hast du nicht weiter oben geschrieben, dass du auch vs2005 besitzt? wenn ja, benutze dessen debugger. einen besseren gibt es nicht unter windoofs.
und was gebe ich in dem debugger ein? sorry ich kann in dem VS 2005 DAU... IDE nicht mal compilen da es ausgegraut ist...
habe die .c datei im datei manager geöffnet mit öffnen mit... dann hats den VS 05 geladen siehe hier kann nicht compilen:
http://666kb.com/i/auzlh8o9zq6tysbgl.gif
kann mir den keiner das kurz debuggen? Selbst wenn ichs könnte wüßte ich nicht was ich dabei machen sollte...
-
du musst für vs 2005 ein leeres 'konsolen'-projekt erzeugen. dann legst du eine .c datei an (achtung: muss .c heissen, nicht .cpp) und bindest die ins projekt ein (in der projektansicht, rechte maustaste, vorhandenes objekt einbinden oder so ähnlich heisst das). vs befindet sich dann automatisch im debug-modus. wenn du das programm startest wird er stoppen, wenn er einen fehler entdeckt und du kannst dir dann alle variablen, den speicher, den call-stack usw. ansehen.
-
vs2005-fan schrieb:
du musst für vs 2005 ein leeres 'konsolen'-projekt erzeugen. dann legst du eine .c datei an (achtung: muss .c heissen, nicht .cpp) und bindest die ins projekt ein (in der projektansicht, rechte maustaste, vorhandenes objekt einbinden oder so ähnlich heisst das). vs befindet sich dann automatisch im debug-modus. wenn du das programm startest wird er stoppen, wenn er einen fehler entdeckt und du kannst dir dann alle variablen, den speicher, den call-stack usw. ansehen.
habe das vorhin probiert ein konsolenwin32 app angelegt doch wies so war machte er mir ne .cpp und die main darin... ok bei speicher unter habe ich halt in bla.c umgenannt oder so und compiled dann dies...:
"meinNeuesProjekt.exe": "D:\test\meinNeuesProjekt\debug\meinNeuesProjekt.exe" geladen, Symbole wurden geladen. "meinNeuesProjekt.exe": "C:\WINXP\system32\ntdll.dll" geladen, Keine Symbole geladen. "meinNeuesProjekt.exe": "C:\WINXP\system32\kernel32.dll" geladen, Keine Symbole geladen. "meinNeuesProjekt.exe": "C:\WINXP\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcr80d.dll" geladen, Symbole wurden geladen. "meinNeuesProjekt.exe": "C:\WINXP\system32\msvcrt.dll" geladen, Keine Symbole geladen. Das Programm "[3612] meinNeuesProjekt.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
Eigentlich müsste eine Kosolenfenster sichtbar bleiben mit meinem 3 punkte menü...
ICH WILL NICHT VS 2005 benutzen verstehst du das nicht???
Ich habe mich jetzt auf Codeblocks eingearbeitet etc brauche nur die verflixte gdb.exe Datei WARUM finde ich die in dem Minwinstaller von januar 2007 nicht, es kann doch nicht angehen das ein komplettinstaller ohne debugger ausgeliefert wird wo gibts denn sowas hallo? :p
-
In Zeile 14 der Funktion 'suche_AnhaengerNummer' greifste ständig auf 'ptr->iAnhaengerNummer' und 'ptr->sAnhaengerName' zu.
Obwohl ptr mit NULL aus der while-Schleife geflogen sein kann !
-
Pelle schrieb:
ICH WILL NICHT VS 2005 benutzen verstehst du das nicht???
okay, es ist deine entscheidung.
-
@bleib doch locker...
Ich habs doch net böse gemeint, nur mach ich schon den ganzen Tag an den 3 pippi dingern rum und komm net weiter und das aufpoppende Fenster vom VS 05 nervt mich unsäglich, wenn ich dem nein sage, ich will den VS 05 nicht als debugger die "Sau" poppt dennnoch immer wieder auf, tja einmal M$ immer M$
debugservice schrieb:
In Zeile 14 der Funktion 'suche_AnhaengerNummer' greifste ständig auf 'ptr->iAnhaengerNummer' und 'ptr->sAnhaengerName' zu.
Obwohl ptr mit NULL aus der while-Schleife geflogen sein kann !
danke dir debuservice...
das stimmt sprich wenn ich aus der schleife bin, zeigt ptr auf NULL und mein Ausgabe wird natürlich nix... Hmm... *denk , grübel* Die Ausgabe in der Schleife machen ist aber auch quark dann bekomme ich ja alle Elemente ausgegeben solange beine Anhängernummern nicht übereinstimmen. toll was bleibt dann noch? Oder ist die "&&"-Verknüpfung vllt. falsch?
Hm.. ich habe nochmals nummer: 1 und name: bla eingegeben und nach 1 gesucht und er gibts aus, dann habe ich nummer: 3 und name: muh eingegeben und wieder nach 1 gesucht und dieses dämliche VS 2005 Fenster springt wieder auf...
also das komische ist ich habe 4 werte eingegeben einer hatte die nummer 4 sprich die 1. Eingabe, danach habe ich alle ausgegeben um zu sehen ob sie auch existieren und dann habe ich speziel nach der 4 gesucht und ausgegeben dann gings, es geht aber net immer???
Kann mir jemand sagen was an der logik denn falsch ist im suche_AnhaengerNummer() ?
-
Prüf mal Zeile 37 bis 42 in der Funktion 'haengean_Anhaenger' ob dort die Logik stimmt :
'zeiger' zeigt zwar auf den neuen Speicherplatz, aber 'anfang' werden 'iAnNummer' und 'sAnName' zugewiesen ?
-
debugservice schrieb:
Prüf mal Zeile 37 bis 42 in der Funktion 'haengean_Anhaenger' ob dort die Logik stimmt :
'zeiger' zeigt zwar auf den neuen Speicherplatz, aber 'anfang' werden 'iAnNummer' und 'sAnName' zugewiesen ?
*Brett vorm Kopf* klar das mus zeiger->...nummber und zeiger->...name heißen jetzt geht auch die sortierung einwandfrei und die suche super... hoffe das bleibt so...
danke bis morgen mit neuen fragen
-
so nochmals zurück zu der suche_AnhaengerNummer():
habs sie mal abgeändert habe nach existierendem und nicht existierendem Anhänger gesucht beides gab die richtige Ausgabe:
void suche_AnhaengerNummer() { struct anhaenger *ptr = anfang; int iAnNum; printf("Anhängernummer eingeben: "); scanf("%i", &iAnNum); while(ptr != NULL) // && (ptr->iAnhaengerNummer != iAnNum)) { if(ptr->iAnhaengerNummer == iAnNum) { printf("Die gesuchte Anhängernummer ist %i \n", iAnNum); printf("Die Anhängernummer lautet: %i und der Anhängername ist: %s \n",ptr->iAnhaengerNummer,ptr->sAnhaengerName); return; } ptr = ptr->next; } printf("Die gesuchte Anhängernummer %i existiert nicht \n", iAnNum ); }
Doch wie ich es mir dachte... das sortierte einfügen geht DOCH NICHT... ich finde den fehler nicht...
Sieht jemand mehr als ich?
ok habs:
Zeile 49+50 von sortiertes_Anhaengen...
anfang->iAnhaengerNummer=iAnNummer; strcpy(anfang->sAnhaengerName, sAnName);
das war natürlich quark wie davor auch schon tststs... anfang muss zeiger heißen, hab jetzt 2x 8 zahlen kreuz/quer eingegeben mit > und dem < zeichen sortieren jeweils andersrum richtig also sollte... das jetzt passen.
laters...
-
while((ptr = suche_AnhaengerNummer(iAnhaengerNummer)) == NULL);
Ist das nicht das gleiche?:
while(suche_AnhaengerNummer(iAnhaengerNummer) == NULL);
1. while schleife habe ich aus einem 10 jahre alten C buch was net schlecht sein muss...