C++ Problem

09/26/2010 18:42 ©rossi™#1
Hi,
ich habe bei meinem c++ code das problem das ich die headerdatei die ich benutzen möchte (function.h von mir gemacht ) eingebunden habe und trzdem eine funktion der headerdatei nicht nutzen kann . Hier mein Code (das problem ist das doppelte(soll überprüfen ob eine zahl doppelt vorkommt )) :
Code:
#include <iostream>
#include <ctime>
#include "function.h"
using namespace std;

int main(void)
{
    int lottozahlen[7], i;
    //Auslosung
    srand(time(NULL));
    do {
    for(i = 0; i < 7; i++)
        lottozahlen[i] = (rand() % 49 ) +1;
    } while (doppelte(lottozahlen, 7));
    //Ende Auslosung

    //Ausgabe der gelosten Zahlen
    for (i = 0; i < 7; i++)
    cout << lottozahlen[i] << endl;
    //Ende Ausgabe
    return 0;
    }
09/26/2010 18:49 ●ROBBY●#2
Quote:
while (doppelte(lottozahlen, 7));
Ich erkenn den Sinn da nicht. Warum willst du bei den Bedingungen der Schleife eine unktion ausführen? Und warum kommen nach der Schleife keine Anweisungen?

Btw. Poste mal deine Funktion die du benutzen willst dann kann man dier noch besser helfen;)
09/26/2010 18:54 ©rossi™#3
Quote:
Originally Posted by ●ROBBY● View Post
Ich erkenn den Sinn da nicht. Warum willst du bei den Bedingungen der Schleife eine unktion ausführen? Und warum kommen nach der Schleife keine Anweisungen?

Btw. Poste mal deine Funktion die du benutzen willst dann kann man dier noch besser helfen;)
ich will eig das er testet ob zwei zahlen doppelt vorkommen und wenn das er dann nochmal lost
09/26/2010 19:07 ●ROBBY●#4
Ja aber wie sieht die Funktion genau aus? Hast du überhaupt Return am Ende?
09/26/2010 19:43 ms​#5
Wenn du deine Header-Datei und die Fehlermeldung nicht postest können wir dir auch schlecht helfen.
09/26/2010 20:08 ©rossi™#6
das ist der inhalt von function.h
Code:
void sortiereArr(int *arr, int elemente);
int ArrMinIndex(int *arr, int ugrenze, int ogrenze);
int doppelte(int *arr, int elemente);
und das ist das andere (kp)
Code:
#include <iostream>
#include "function.h"
using namespace std;

int doppelte(int *arr, int elemente)
// prüft ein Array auf doppelte Werte hin
// Rückgabewert ist 1, falls doppelte Werte vorhanden
{
   sortiereArr(arr, elemente);
   for (int i = 0; i < elemente - 1; i++)
   {
      if (arr[i] == arr[i + 1])
         return 1;
   }
   return 0;
}
void sortiereArr(int *arr, int elemente)
// sortiert ein Feld aufsteigend
{
   int ablage;
   for(int i=0; i < elemente; i++)
   {
      ablage = arr[ArrMinIndex(arr, i, elemente - 1)];
      arr[ArrMinIndex(arr, i, elemente-1)] = arr[i];
      arr[i] = ablage;
   }
}
int ArrMinIndex(int *arr, int ugrenze, int ogrenze)
// gibt den kleinsten Wert eines Arrays 
// im Bereich ugrenze bis ogrenze zurück
{
   int min_index = ugrenze;
   for(int i = ugrenze + 1; i <= ogrenze; i++)
   {
      if(arr[i] < arr[min_index])
      {
         min_index = i;
      }
   }
   return min_index;
und das ist die fehlermeldung :(benutze visual c++ 2010 express)
1>------ Erstellen gestartet: Projekt: lottoprogramm, Konfiguration: Debug Win32 ------
1> lottoprogramm.cpp
1>lottoprogramm.cpp(1): warning C4627: "#include <iostream>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>lottoprogramm.cpp(2): warning C4627: "#include <ctime>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>lottoprogramm.cpp(3): warning C4627: "#include "function.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>lottoprogramm.cpp(23): fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "StdAfx.h"" einzufügen?
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

hoffe könnt mir jetzt helfen :handsdown:
mfg
09/26/2010 20:29 ms​#7
Quote:
Originally Posted by Crossi xD View Post
1>lottoprogramm.cpp(23): fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "StdAfx.h"" einzufügen?
>:|
09/26/2010 20:32 ©rossi™#8
Quote:
Originally Posted by Disconnect View Post
>:|
habs jetzt eingefügt und jetzt kommt diese fehlermeldung:
1>------ Erstellen gestartet: Projekt: lottoprogramm, Konfiguration: Debug Win32 ------
1> lottoprogramm.cpp
1>lottoprogramm.cpp(1): warning C4627: "#include <iostream>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>lottoprogramm.cpp(2): warning C4627: "#include <ctime>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>lottoprogramm.cpp(3): warning C4627: "#include "function.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>lottoprogramm.cpp(11): error C2065: 'NULL': nichtdeklarierter Bezeichner
1>lottoprogramm.cpp(11): error C3861: "srand": Bezeichner wurde nicht gefunden.
1>lottoprogramm.cpp(11): error C3861: "time": Bezeichner wurde nicht gefunden.
1>lottoprogramm.cpp(14): error C3861: "rand": Bezeichner wurde nicht gefunden.
1>lottoprogramm.cpp(15): error C3861: "doppelte": Bezeichner wurde nicht gefunden.
1>lottoprogramm.cpp(20): error C2065: 'cout': nichtdeklarierter Bezeichner
1>lottoprogramm.cpp(20): error C2065: 'endl': nichtdeklarierter Bezeichner
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
09/26/2010 20:40 ms​#9
Einfach lesen was da steht. Die ganzen anderen includes werden übersprungen, weil StdAfk.h nicht als erstes includet wird.
09/26/2010 22:53 MrSm!th#10
Welchen Projekttyp hast du denn, dass er den StdAfx.h will?? o.ô
09/26/2010 22:56 ms​#11
Quote:
Originally Posted by MrSm!th View Post
Welchen Projekttyp hast du denn, dass er den StdAfx.h will?? o.ô
VC++ is srs bsns ;O
09/26/2010 23:05 MoepMeep#12
Müsste CLR sein ._.


Quote:
Originally Posted by ●ROBBY● View Post
Ich erkenn den Sinn da nicht. Warum willst du bei den Bedingungen der Schleife eine unktion ausführen? Und warum kommen nach der Schleife keine Anweisungen?

Btw. Poste mal deine Funktion die du benutzen willst dann kann man dier noch besser helfen;)
Schonmal was von Fußgesteuerten schleifen gehört? Und warum sollte er keine Funktion in der Bedingung ausführen? <.<
09/26/2010 23:08 ms​#13
Also bei mir verlangt VC++ immer nach dem #include "stdafx.h". ;O
09/26/2010 23:14 MoepMeep#14
Quote:
Originally Posted by Disconnect View Post
Also bei mir verlangt VC++ immer nach dem #include "stdafx.h". ;O
Das liegt daran, dass du böse warst und es dich nun nicht mehr mag (:

Microsoft produkt halt :x

Verlangt er, wenn du "Leeres Projekt" nimmst, auch danach?
09/26/2010 23:36 MrSm!th#15
Also ich sehe das auch seltsamerweise bei vielen, ob Konsolenprojekt, Win32 oder Dll, immer sehe ich stdafx.
Ich kenne stdafx nur von MFC Projekten, da enthalten ja verdammt viele Bezeichner Afx, also habe ich es direkt damit in Verbindung gebracht o.ô
Ich brauche solche Header in nicht-MFC Projekten nicht.
VS Pro 2010, war aber auch mit 2008 so