c++ unterschied vs6 und vs .net 7 (oder wie das heißt)
-
hi
ich hab visual studio 6.0 und damit folgendes Programm geschrieben:
#include <iostream.h> #include <conio.h> #include <time.h> #include <fstream.h> bool prim (int l) { int j; for (j = 2; j < l; j++) { if (l % j == 0) { return false; } } return true; } int main () { int start; int ende; int z; int y; int x; int i; int a; int file; ofstream schreiben; schreiben.open("C:\\text.txt"); cout << "Bitte die erste Zahl eingeben" << endl; cin >> start; cout << "Bitte die letzte Zahl eingeben" << endl; cin >> ende; cout << "Gebe 1 an um die Zahlen anzeigen zu lassen und 0 um sie nicht anzeigen zu lassen"; cin >> a; cout << "Gebe 1 an um die Zahlen in eine Datei zu speichern 0 um sie nicht zu speichern" << endl; cin >> file; cout << endl; time_t Zeitstempel; tm *nun; Zeitstempel = time(0); x = Zeitstempel; for (i = start; i <= ende; i++) { if (prim(i) && a) { cout << i << " ist eine Primzahl" << endl; } if (prim(i) && file) { schreiben << i << " ist eine Primzahl" << endl; } } schreiben.close(); time_t Zeitstempe; tm *nun1; Zeitstempe = time(0); y = Zeitstempe; z = y - x; cout << endl; cout << "Es wurden alle Primzahlen von " << start << " bis " << ende << " berechnet" << endl; cout << "Programmlaufzeit: " << z << " Sekunden" << endl << endl; cout << "Druecke bitte eine Taste um das Programm zu beenden" << endl; getch(); return 0; }
bei meinen Kollegen allerdings spuckt das Programm massig fehler aus und lässt sich nicht compilieren er sagt er hätte den neuesten ms visual c++ compiler die fehleör weiß ich etz nimmer genau aber ich glaub es ging schond amit los das er cout nicht kannte und auch mit so einigen include files nicht klar kam (z.b. fstream.h war son fall die es nicht gab) und auch das mit der zeit ging einfach nicht und hat fehler nach fehler ausgespuckt). auserdem hab ich gelesen das man das .h bei den includes weglassen sollte da damit nur die alten header dateien benutzt werden. Mein Problem ist nur 1. hab ichs in der Schule mitm borland 5 compiler so gelernt und 2. gehts bei mir gar net ohne bei meinen kollegen aber auch nicht
jetzt sind wir alle ein bisschen verwirrt und ihr bestimmt auch
aber vieleicht kann die verwirrung ja jemand aufklären
mfg
chrisi01
-
es ging schond amit los das er cout nicht kannte
Na das ist doch ein Anhaltspunkt...
cout... hm... was muss man da includieren? Richtig! iostream
hm... is doch bereits drin? Aber wo war cout genau drin? Ah... im namespace std
also:using namespace std;
-
nirsaja schrieb:
es ging schond amit los das er cout nicht kannte
Na das ist doch ein Anhaltspunkt...
cout... hm... was muss man da includieren? Richtig! iostream
hm... is doch bereits drin? Aber wo war cout genau drin? Ah... im namespace std
also:using namespace std;
Er benutzt iostream**.h** o_O nix mit namespace
benutzt nur
#include <iostream> using namespace std;
hast ja selber schon angemerkt, dass die .h veraltetet Header sind
-
chrisi01 schrieb:
Mein Problem ist nur 1. hab ichs in der Schule mitm borland 5 compiler so gelernt und 2. gehts bei mir gar net ohne bei meinen kollegen aber auch nicht
jetzt sind wir alle ein bisschen verwirrt und ihr bestimmt auch
Verwirrt mit Sicherheit nicht, du hast nur einfach das Problem, was viele Leute haben, die C++ lernen. Entweder arbeiten sie mit veralteten Büchern und Tutorials oder mit veralteten Werkzeugen. Das ist mittlerweile alles andere als empfehlenswert, immerhin gibt es den Standard schon über 7 Jahre. Also solltest du dir eine aktuelle IDE samt Compiler zulegen. Davon gibts ja einiges im Netz, was frei verfügbar ist.
C++ Headerdateien haben jedenfalls kein .h am Ende, zB aus <iostream.h> machst du <iostream>. Alte C Header werden ähnlich benannt, nur dass am Anfang halt noch ein c steht. Aus <time.h> wird zB <ctime>. Und wundere dich nicht, dass es keine <conio> oder <cconio> Headerdateien gibt, denn <conio.h> gehört weder zum C noch zum C++ Standard. Und dass Bezeichner wie cin oder cout mittlerweile im std Namensraum liegen, wurde ja bereits gesagt. Deshalb empfehle ich dir ein kurzes Tutorial über Namensräume durchzuarbeiten, damit du weisst, wie du auf diese Bezeichner zugreifen kannst.
-
hi
danke für eure hilfe hab das glaub ich jetzt bisschen verstanden und mein programm mal bissi umgeschrieben:
#include <iostream> //#include <conio.h> #include <time> #include <fstream> using namespace std; ... ...
als fehler:
fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'iostream': No such file or directory
also geht das net ohne h
ich nutzte Visual c++ 6.0 und bin damit ganz zufrieden eigentlich
aber wenn es bessere freie compiler gibt nehm ich die auch gerne an
habt ihr evlt. ein paar tipps? achja unter borland c++ 5 das wir in der schule nutzten läuft mein obiges programm (aus dem 1. beitrag) heut in der Schule probiert
achja IRGENDWANN möchte ich evtl. mal windows applicationen erstellen wäre also cool wenn es mit dem compiler auch geht damit ich net wieder umsteigen muss
mfg
chrisi01
-
ich nutzte Visual c++ 6.0 und bin damit ganz zufrieden eigentlich
aber wenn es bessere freie compiler gibt nehm ich die auch gerne an
habt ihr evlt. ein paar tipps? achja unter borland c++ 5 das wir in der schule nutzten läuft mein obiges programm (aus dem 1. beitrag) heut in der Schule probiert
Wie's der Zufall will:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-128813.htmlIm Übrigen heißt es
#include <ctime>
-
chrisi01 schrieb:
als fehler:
fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'iostream': No such file or directory
also geht das net ohne h
Wie denn auch? Der 6er kennt den Standard noch net, und folglich fehlen auch die Headerdateien. Die beste Empfehlung momentan ist wohl Visual C++ 2005 Express. Kostenlos und standardkonformer Compiler, und die IDE ist auch super
-
Hallo,
ihr könnt von mir aus gerne auf den VC 6.0 einprügeln, aber korrekt sollte man dabei schon bleiben. Der VC 6.0, besser gesagt die mitgelieferte Dinkumware-Standardlib, kennt selbstverständlich <iostream> und std::cout. In diesem Punkt war der VC 6.0 sogar sehr fortschrittlich (unterstützt im Gegensatz zum gcc 2.95 z.B. auch locales/facetts).
-
HumeSikkins schrieb:
Der VC 6.0, besser gesagt die mitgelieferte Dinkumware-Standardlib, kennt selbstverständlich <iostream> und std::cout.
Evtl. wurde das erst mit einem Servicepack geändert? Es muss ja einen Grund geben, warum beim Kompilieren <iostream> nicht gefunden wird. Und dass die Include-Verzeichnisse nicht korrekt eingestellt sind, kann ich mir nicht vorstellen. Wenn ich chrisi01 richtig verstanden habe, dann wird <iostream.h> bei ihm immerhin gefunden.
@chrisi01
Wenn du bei Visual C++ 6.0 bleiben willst, dann ist das ja ok. Die IDE ansich ist ja auch nicht schlecht. Nur ist der mitgelieferte Compiler nicht mehr zeitgemäss und auch die Standardlib hat so ihre Macken. Man diese Sachen aber updaten. Dazu kann man sich zB das Visual C++ Toolkit 2003 herunterladen und in die VC++ 6 IDE einbinden. Nur ist das nicht unbedingt so einfach getan wie gesagt, du solltest dich schon etwas damit auskennen. Deshalb ist es vielleicht besser, du holst dir gleich eine aktuelle IDE + Compiler + Standardlib als Komplettpaket, installierst dies und fertig.