Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ein Problem, welches ich nicht fixen kann.

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
08.07.2004, 13:37 Uhr
~Benny
Gast


Hy Jungs, ich weiß dass ihr um einiges besser seid als ich und desshalb wende ich mich auch gerne an euch. Ich hab nen Code der irgendwie nicht so will wie er soll, aber auch kein ersichtlicher Fehler für mich gefunden werden kann.

Wäre euch sehr dankbar, wenn ihr ihn mal kopiert und reinschaut, vielleicht fällt euch auch schon vorher was auf. Ich nehme an, dass es irgendwie mit Adressen zu tun haben könnte.


C++:
#include<stdio.h>
#include<conio.h>
#include<string.h>

typedef struct
{
char name[32];
char ort[32];
float umsatz;
int bonus;
}kunde;
void inpf(int[5],kunde[100]);

void main ()
{
int w[5];
kunde k[100];

printf("\n1 input\n2 output\n");
scanf("%d", &w[0]);
inpf(w,k);
}

void inpf(int w[5],kunde k[100])
{
int e;
printf("\nwelcher kunde?\t");
scanf("%d",&e);
printf("name:  ");
gets(k[e].name);
printf("ort:   ");
gets(k[e].ort);
printf("umsatz:");
scanf("%f",&k[e].umsatz);
printf("bonus: ");
scanf("%d",&k[e].bonus);
clrscr();
printf("kunde %d:\n %s aus %s\n mit %.2f umsatz und %d bonus\n",e,k[e].name,k[e].ort);
getch();
}




Danke für eure Mühe


Grüßer Benny
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2004, 13:50 Uhr
freshman



guck dir schon mal in deiner Fkt die Variable e an ->ihr wird kein Wert zugewiesen. Kann es sein, daß du da eine Schleife vergessen hast, in der e der Laufindex ist?
--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.07.2004, 13:54 Uhr
~Benny
Gast


Ich habs gefunden, das Problem war, dass man nach dem scanf ein fflush (stdin) machen sollte, daher hat es mir das Programm verrissen.

Trotzdem danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.07.2004, 13:56 Uhr
Tommix



@freshman

Zitat:

scanf("%d",&e);



@Benny

Zitat:

... er irgendwie nicht so will wie er soll ...


Wie soll er denn? Will sagen, etwas Fehlerbeschreibung macht die Sache leichter.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.07.2004, 13:58 Uhr
~Benny
Gast


Also, neue Erkenntnis.

Unter Borland Builder 5 funktionierts mit fflush(stdin)

unter borland turbo c geht es nicht.


@freshman
e wird mit scanf eingelesen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.07.2004, 14:08 Uhr
freshman



*upsala* nehme alle zuruck
--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.07.2004, 14:10 Uhr
Tommix



Ich noch mal,
Fehler in printf:

C++:
printf("kunde %d:\n %s aus %s\n mit %.2f umsatz und %d bonus\n", e, k[e].name, k[e].ort, k[e].umsatz, k[e].bonus);


(umsatz und bonus fehlten)
- Tommix

Dieser Post wurde am 08.07.2004 um 14:12 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.07.2004, 14:33 Uhr
~gast
Gast


bin ich nur gerade verplannt und auch total nicht auf dem laufenden oder seit wann ist fflush() fuer stdin offiziel definiert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.07.2004, 14:50 Uhr
(un)wissender
Niveauwart


Für windows ist das definiert und manchmal braucht man es da sogar, weil du sonst den Stream nicht wieder klar kriegst.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
08.07.2004, 17:28 Uhr
0xdeadbeef
Gott
(Operator)


Und noch eins:

C++:
void main()


ist FALSCH!

Das heißt

C++:
int main() {
  /* ... */
  return 0;
}


Auch ein Programm hat einen return-Wert, den die Shell nachher in irgendwelchen Skripten benutzen kann, um zu testen, ob der Kram richtig durchgelaufen ist.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: