PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual C++ 2005 Express Edition - Wo compilieren?


N!mrod
2005-11-15, 22:04:06
Abend!

Im Rahmen meines Studiums muss ich die Programmiersprache C++ erlernen.
Gestern hab ich mir die Visual Studio Express Edition gesaugt und installiert. :)

Jetzt wollte ich ein kleines Progrämmchen schreiben, doch ich finde keinen Compile-Button oder dergleichen. :confused:

In der FH haben wir Visual Studio 6.0 und das hat einen solchen Button.

Naja, ich hoffe ihr peitscht mich für diese Frage nicht aus; ich wäre froh wenn mir jemand helfen könnte.

mfg,
Nimrod

Coda
2005-11-15, 22:07:55
Zuerstmal must du ein neues Win32 Project anlegen, danach eine Datei hinzufügen Source-Code rein und dann Build->Build Project.

zeckensack
2005-11-15, 22:34:55
F7?

N!mrod
2005-11-15, 22:44:10
Ok, danke erstmal für die Antworten! :)

Habs das File jetzt in einem Projekt, aber ich bekomme beim Compilieren einen Fehler...

Er mag die Library nicht... :confused:

Code:

#include <iostream.h>


Er bringt den Fehler: "fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory"

Hilfe... ;(

Coda
2005-11-15, 22:46:50
Den Header gibt es nicht.

iostream.h ist böse, wurde nie spezifiziert und ist deshalb seit .NET 2003 nicht mehr enthalten. Und das ist auch gut so (tm). Wenn du die Standardklassen haben willst ist <iostream> das richtige. Allerdings must du dann auf den Namespace aufpassen.

Wenn euer Dozent 2005 wirklich noch <iostream.h> unterrichtet gehört ihm irgendwas großes stacheliges in den Arsch geschoben (nein das ist nicht übertrieben, C++ ist jetzt schon seit 98 standardisiert).

N!mrod
2005-11-15, 23:18:14
Hmm, jo stimmt. Im Skriptum stehts mal mit .h und mal ohne.
Habs jetzt geändert, aber das funzt immer noch net.. ;(

Hier der komplette Code:


/*
Kleiner Taschenrechner
*/

#include <iostream>
#include <conio.h>

void main(){

double x, y, erg;
char wahl;

cout << " ________________________";
cout << "\n| Kleiner Taschenrechner |";
cout << "\n ________________________";

do{

cout << "\n\nBitte geben Sie die erste Zahl ein: ";
cin >> x;

cout << "\nBitte geben Sie die zweite Zahl ein: ";
cin >> y;

erg=x+y;
cout << "\n\nSumme = " << erg;

erg=x-y;
cout << "\nDifferenz = " << erg;

erg=x*y;
cout << "\nProdukt = " << erg;

if(y==0){

cout << "\nQuotient kann nicht errechnet werden - Division durch NULL!";
}

else{

erg=x/y;
cout << "\nQuotient = " << erg;
}

cout <<"\n\nNochmal? [J/N]\nIhre Wahl: ";
cin >> wahl;

}while(wahl!='N');

}


Mit Borland C funzts einwandfrei...
Was mache ich im VC++ falsch?

Coda
2005-11-15, 23:21:23
Wenn der Sourcecode so mit Borland kompiliert gehören die auch noch mit dem stacheligen Zeug behandelt.

Du brauchst nach "#include <iostream>" noch ein "using namespace std;"

N!mrod
2005-11-15, 23:31:08
Thx Glückskind!!! :smile: Jetz hauts hin!

Borland compilierts natürlich nur wenn ich <iostream.h>schreibe!

DR.DEATH
2005-11-16, 01:41:44
Den Header gibt es nicht.

iostream.h ist böse, wurde nie spezifiziert und ist deshalb seit .NET 2003 nicht mehr enthalten. Und das ist auch gut so (tm). Wenn du die Standardklassen haben willst ist <iostream> das richtige. Allerdings must du dann auf den Namespace aufpassen.

Wenn euer Dozent 2005 wirklich noch <iostream.h> unterrichtet gehört ihm irgendwas großes stacheliges in den Arsch geschoben (nein das ist nicht übertrieben, C++ ist jetzt schon seit 98 standardisiert).

OT:
Mein Berufsschullehrer bringt es auch noch so rueber und findet es auch noch gut, da ich in der Sprache aber zu wenig Wissen habe, weiss ich auch nicht was ich dem entgegensetzen sollte. Ausserdem darf ich dort auch so einen Borlandcompiler/IDE "geniessen", wobei ich bei dem Teil irgendwie auch Kraempfe bekomme, fuer unseren Gebrauch viel zu ueberladen und irgendwie fehleranfaellig bei Projekten.

Senior Sanchez
2005-11-16, 01:57:17
Naja, also bei ordentlichem C++ Code sollte man wohl nicht mehr die .h-Header verwenden. Sollte mal nen wichtiger nicht da sein, dann nimmt man eben die cname header, eben die Portierung sämtlicher C-Header nach C++.

Coda
2005-11-16, 02:43:46
Nö bei den C-Headern ist das egal, weil <cstdio> und <stdio.h> identisch sind. <iostream> und <iostream.h> definieren aber unterschiedliche und inkompatible Dinge.

Senior Sanchez
2005-11-16, 09:50:39
Nö bei den C-Headern ist das egal, weil <cstdio> und <stdio.h> identisch sind. <iostream> und <iostream.h> definieren aber unterschiedliche und inkompatible Dinge.

HmZ? War das auf mich bezogen? Ich habe doch nirgends was anderes behauptet, oder?

Coda
2005-11-16, 15:24:05
Die C-Header müssen sowohl als header.h als auch als cheader vorliegen.

Senior Sanchez
2005-11-16, 16:08:31
Die C-Header müssen sowohl als header.h als auch als cheader vorliegen.

Aso, ja, war vllt etwas blöde von mir formuliert *g*

Kinman
2005-11-16, 22:12:34
cut...
Mit Borland C funzts einwandfrei...
Was mache ich im VC++ falsch?

Hättest auch dazusagen sollen das der Borland compiler aus dem Jahre '92 ist.
Sonst schiebt Coda den falschen Leuten was stacheliges unterm Allerwertesten

mfg Kinman

Coda
2005-11-16, 23:09:57
Wird mit sowas heute noch unterrichtet? Dann doch der Dozent :ubash2:

Es gibt verdammt gute freie Compiler (Hint: GCC)

Fruli-Tier
2005-11-18, 10:47:44
Wir in der Berufsschule nutzen den BCB 5 ;) für den hauptsächlichen Anwendungsentwicklungsunterricht, aber für ein zusätzliches Fach (statt Religion/Ethik und nur für Abiturienten) .NET 2003.

Was ich noch zum using namespace std; sagen wollte. Man kann es natürlich auch weg lassen, nur dann musst Du vor jedem Aufruf der Methoden der Standard Lib ein std:: voranhängen (für den Namespace eben).

Beispiel:
std::cout << "Hallo Welt stinkt" << std::endl;

Ist zwar umständlicher, aber es gibt Leute, die mögen das Namespace Zeugs nich so :)

Coda
2005-11-18, 12:17:11
Ja, ich z.B. aber die Diskussion wollte ich nicht auch noch in den Thread einbauen...

Ganon
2005-11-18, 12:53:52
Kann man nicht auch:
using namespace std::cout
schreiben, damit dann halt nur cout abgedeckt ist?

Fruli-Tier
2005-11-18, 14:15:28
Versuchs doch mal ;)

std::cout ist kein Namespace, von daher wird dir dein Compiler ne lustige Meldung bringen. Der Namespace ist doch std und wenn Du den angibst, dann kannst doch einfach
cout << "Muschi" << endl;
schreiben.

Oder willst Du das cout auch nicht mehr schreiben?
<< "Muschi" << endl;

Eigentlich versteh ich nicht, was Du meinst :biggrin:

Ganon
2005-11-18, 14:35:49
Achja, warte. Das war glaube ich ohne das "namespace". Also

using std::cout

oder? Ach, keine Ahnung. Schon lange kein C++ mehr programmiert. ;)

Coda
2005-11-18, 18:47:08
Ja, ist korrekt.

grakaman
2005-11-18, 20:20:33
Dann darf er aber auch noch "using std::endl;" importieren, sollte er einen Zeilenumbruch setzen wollen etc. Sicher ist es dann doch einfach praktischer, nur den Namespace std zu importieren.

Coda
2005-11-18, 21:40:16
Ich würde das using namespace std; nur nicht global setzen sondern in die main. Der Grund von Namespaces ist ja nicht alles mit den Namen zu verpesten, also sollte man es nur dort einfügen wo man sie auch braucht.

In einem Header hat es z.B. überhaupt nichts verloren.

grakaman
2005-11-18, 21:59:00
Ich würde das using namespace std; nur nicht global setzen sondern in die main. Der Grund von Namespaces ist ja nicht alles mit den Namen zu verpesten, also sollte man es nur dort einfügen wo man sie auch braucht.

In einem Header hat es z.B. überhaupt nichts verloren.

Ja gut, aber in dem Fall, dass man sich mit den Namen nicht sicher ist, kann man ja immer noch den voll qualifizierenden Namen angeben.