![]() |
schaltjahr oder nicht-schaltjahr?
hi,
da man bei uns in der schule nix lernt (lehrer is kagge) hab ich jetzt mal angefangen mir c++ selber beizubringen.. und zwar versuch ich grad ein programm zu schreiben, bei dem man zwei daten eingibt, und das prog berechnet die anzahl der tage die zwischen den zwei daten liegen. jetzt muss ich nur noch wissen wie ich dem programm beibringe die schaltjahre zu berücksichtigen... bisher schauts so aus: Code:
case 02: thx, suka |
sollt funktionieren.
bool istSchaltjahr(int jahr) { bool schaltjahr=false; if(jahr%4==0) { schaltjahr=true; if(jahr%100==0) { schaltjahr=false; if(jahr%400==0) { schaltjahr=true; }; }; }; return schaltjahr; } |
hab noch eine elegantere version gefunden
bool istSchaltjahr(int jahr) { if(jahr%400==0) return true; if(jahr%100==0) return false; if(jahr% 4==0) return true; return false; }; |
² irrsinn
ich möchte diesen thread missbrauchen um dich was zu fragen (sei mir nicht böse suka) ich möchte den user des programms einen pfad mit dateinamen und dateierweiterung eingeben lassen und das programm erstellt in diesem pfad eine datei mit angegebenen namen und angegebener dateierweiterung, bei mir schauts so aus: printf("Geben Sie Pfad und Dateinamen an: "); scanf("%d",& path); konto=fopen(path,"w"); //"konto" is der filepointer die ganze sache funzt nur leider nicht... er erstellt mir im verzeichnis der exe, die das programm is eine datei, die path heißt... ohne dateierweiterung ! angeblich sollts so funzen, nur tuts halt nicht... PS: das programm is nur vorläufig noch im CL-interface ;) PS2: wo find ichn ein bissal infos über boolsche operatoren? |
werd mir schnell ein derartiges programm
schreiben. kann dir allerdings nichts garantieren, weil ich mit linux unterwegs bin. trau mir über das andere betriebssystem nichts genaues sagen. in fehler ist mir allerdings sofort aufgefallen. vielleicht ists aber auch nur ein tippfehler von dir: wenn du einen string einlesen willst, muss es scanf("%s" &irgendwas); heißen. außerdem solltest du file streams immer mit fclose(stream) schließen. |
das ich die file schließe is klar, hab ich da nur nicht hingeschrieben, fehlt ja sonst noch ne menge, oder ? ;)
ich habs bewusst als integer eingelesen, sollt/muss ich nen string verwenden? hast du ICQ/MSN? ICQ: 121 65 35 39 MSN: redspitfireflame@hotmail.com wäre dir sehr verbunden :) |
Kann Dir leider nicht helfen. Bin aber 29.2.1960 geboren
|
einen string als zahl einzulesen hat meiner meinung nach nicht viel sinn. möglicherweise gibts aber auch so ein verfahren. bin ja nicht allwissend.
was verwendest du sonst für bibliotheken? und vor allem welches betriebssystem? such einfach nach einem howto. müssts im internet genug geben. konkretes zum thema boolesche operatoren fallt mir auf die schnelle nicht ein. |
Zitat:
ich verwende standardbibliotheken... stdio.h, conio.h, sting.h, für diese spielereien auch windows.h usw. noch was... könntest du mir sagen, welche returnwerte die buttons ok, cancel, yes, no, ignore usw. haben? wenn ich eine messangebox verwende, die niemandem eine fehlermeldung vormachen soll, dann bräucht ich das schon ;) habs mal mit den returnwerten probiert, die in der MSDN-library unter msgbox stehen, gehen aber nicht ! |
kurze klarstellung: wenn du einen dateinamen mit pfad und dateierweiterung einlessen willst, ist das mit sicherheit keine zahl sondern ein string. also unter c, wenn du so willst ein feld mit unsigned shorts. unter c++ gibts in der mfc die klasse cstring. is im großen und ganzen auch bequem zu verwenden.
zu den return werten weiß ich nur, dass die in der mfc angegebenen stimmen. hab ich in der arbeit schon öfters verwendet. du musst allerdings aufpassen, dass du die richtigen returns zur richtigen dialogbox verwendest. meines wissens nach gibts davon mehrere in der mfc. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag