itbeginner
Goto Top

Probleme mit Dev cpp

Hi,
ich habe ein Problem mit Dev C++ ich kann dieses Programm nicht verwenden:
#include <cstdlib>
#include <iostream>

using namespace std;

bool istSchaltjahr(int jahr)
{

bool ist = false;
if (jahr%4 == 0)
ist = true;
if (jahr%100 == 0)
ist = false;
if (jahr%400 == 0)
ist = true;
return ist;
}
Es kommt:
[Linker Error] undefined reference to 'WinMain@16'
id returned 1 exit status
[Build Error] [Schaltjahr.exe]Error 1

Aber dies ist nicht der Erste fall bei dem Dev C++ nicht wie mein Tutorial funktioniert
im Tutorial wird angeben #include <iostream.h> mehr nicht bei Dev c++ reicht dies nicht man muss immer #include <cstdlib>
#include <iostream>

using namespace std;
oder im Tutorial wird für den beginn des Hauptprogramms
void main()
aber bei Dev C++ muss ich
int main(int argc, char *argv)
schreiben.
Grüße itbeginner

Content-Key: 83482

Url: https://administrator.de/contentid/83482

Printed on: April 27, 2024 at 00:04 o'clock

Member: SvenGuenter
SvenGuenter Mar 19, 2008 at 10:52:35 (UTC)
Goto Top
Komisch also ich habe es folgendermaßen bei mir gemacht

#include <cstdlib>
#include <iostream>




bool istSchaltjahr(int jahr)
{

bool ist = false;
if (jahr%4 == 0)
ist = true;
if (jahr%100 == 0)
ist = false;
if (jahr%400 == 0)
ist = true;
return ist;
}

using namespace std;

int main()
{
    cout<<istSchaltjahr(2000);
    system("PAUSE");  
    return EXIT_SUCCESS;
}

Und Funktioniert einwandfrei unter Dev++

Poste doch mal deinen kompletten quellcode bitte also auch deine Main.

Was das
int argc, char *argv
angeht musst du es bei einer Konsolenanwendung NICHT mit angeben.

Es klappt auch wunderbar ohne wie mein Beispiel oben zeigt.

was den namespace betrifft und die Bibliotheken ist es in Tutorials oft so das diese aufeinander aufbauen und dann die include Zeilen oft weggelassen werden. Sprich auf der Seite vorher steht sie noch und wird später einfach nciht weiter erwähnt. Einfügen muss man diese trotzdem.

Aber nur zur Info deine Schlatjahrbestimmung ist auch nicht korrekt ;o) bekommst true auch bei Jahren die kein Schaltjahr sind.

Gruß

Sven
Member: itbeginner
itbeginner Mar 19, 2008 at 19:32:40 (UTC)
Goto Top
Achso ich habe da so ein Tutorial in dem mir gesagt worden ist ich soll als Übung mit Bool arbeiten , aber mir wurde vorher nie richtig erklärt wie das funktionieren soll und ich habe nicht gewust , dass
ich Main schreiben muss.Wenn ich dein Programm verwende klappt es bei mir aber auch nicht richtig face-sad es wird nur der Befehl verwendet:
system("PAUSE");
return EXIT_SUCCESS;
sonst passiert gar nicht mehr!?.
Das muss ich immer als Main verwenden
int main(int argc, char *argv)
im Tutorial steht immer void main() und das geht bei Dev C++ nicht.
grüße itbeginner
Member: SvenGuenter
SvenGuenter Mar 20, 2008 at 12:12:56 (UTC)
Goto Top
hi.

das geht mit meinem programm nicht, weil ich eien return angebe.

return EXIT_SUCCESS;

Da will dann die mani einen Rückgabewert haben

int main

;o)

poste mal deinen kompletten quellcode dann kann ich dir sagen wo du den Fehler hast und dir erklären was falsch ist.


es wird nur der Befehl verwendet:
system("PAUSE");
return EXIT_SUCCESS;

Schau mal ob vor der Pause eine 1 oder eine 0 steht dann wirst du sehen das das Programm funktionert. Sprich einen 1 wenn es ein schaltjahr ist und einen 0 wenn es kein schaltjahr ist. Oder mache vor dem system pause nocht ein

cout<<"\n 1 für Schaltjahr 0 für kein Schaltjahr \n";

also komplett so
#include <cstdlib>
#include <iostream>


using namespace std;

bool istSchaltjahr(int jahr)
{

bool ist = false;
if (jahr%4 == 0)
ist = true;
if (jahr%100 == 0)
ist = false;
if (jahr%400 == 0)
ist = true;
return ist;
}



int main()
{
    cout<<istSchaltjahr(2000);
    cout<<"\n 1 fuer Schaltjahr 0 fuer kein Schaltjahr!\n";  
    system("PAUSE");  
    return EXIT_SUCCESS;
}


Gruß

Sven
Member: itbeginner
itbeginner Mar 20, 2008 at 13:52:18 (UTC)
Goto Top
#include <cstdlib>
#include <iostream>


using namespace std;

bool istSchaltjahr(int jahr)
{

bool ist = false;
if (jahr%4 == 0)
ist = true;
if (jahr%100 == 0)
ist = false;
if (jahr%400 == 0)
ist = true;
return ist;
}

Mit diesem Code hab ich gearbeitet weil ich nicht wusste dass man bei bool ein main() schreiben muss so kam das erste Problem.Die 1 hatte ich übersehen sorryface-smile.Ist dann bei bool 1 für true und und 0 für false?
grüße itbeginner
Member: SvenGuenter
SvenGuenter Mar 20, 2008 at 14:56:29 (UTC)
Goto Top
Ja

1 ist True und 0 ist False.

Ich denke mir aber das du erstmal Grundlagen in VB sammeln solltest bevor du dich auf C++ oder Java stürzt.

Und in VB erstmal ein paar Grundlagen sammeln

;o)


Gruß

Sven