Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » was ist daran falsch

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.09.2004, 17:02 Uhr
~aAa
Gast


Tach...
Ich hab da ein problem:


C++:
#include <iostream.h>
#include <conio.h>
#include <math.h>

using namespace std;

float x,y ;

int main (int argc, char *argv[])
   {
   clrscr() ;
   x = 9 ;
   y = sqrt( x ) ;
   cout << "Wurzel von " ;
   cout << x  ;
   cout << " ist " ;
   cout << y  ;
   getch() ;
   system ("PAUSE");
   return 0;
   }


was ist daran falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.09.2004, 17:05 Uhr
(un)wissender
Niveauwart


Wie, was ist daran falsch?
Was willst du denn erreichen und wo liegt das Problem?
Was ich aber mit Sicherheit sagen kann ist, dass du <iostream> und <cmath> verwenden und x,y lokal anlegen solltest.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.09.2004, 17:10 Uhr
Tommix



Hallo,

Zitat von ~aAa:

was ist daran falsch?

Das es kein ANSI-C++ ist.

Insbesondere muss es, wenn Du den namespace std verwendest

C++:
#include <iostream>
// (ohne .h)


heissen. Conio.h ist auch kein Standard, demzufolge müssen je nach Compiler auch die von dort stammenden Funktionen raus (clrscr() und getch()).

- Tommix


Bearbeitung:
Zu langsam...

Dieser Post wurde am 02.09.2004 um 17:12 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.09.2004, 17:14 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <iostream>
#include <cmath>

int main() {
  double x, y; //Pfff. Wofür sich mit floats rumschlagen?

  x = 9;
  y = std::sqrt(x);

  std::cout << "Die Wurzel von " << x << " ist " << y << std::endl;

  getchar();
}


bzw. in C:

C++:
#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[]) {
  double x, y;

  x = 9;
  y = sqrt(x);

  printf("Die Wurzel von %lf ist %lf\n", x, y);

  getchar();

  return 0;
}



Bearbeitung:

Da war kein Tipfeeler!


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 02.09.2004 um 17:19 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.09.2004, 17:15 Uhr
(un)wissender
Niveauwart


@Tommix
Naja, nicht Ansi-C++ != automatisch falsch.
Hast aber trotzem irgendwie recht.

@beefy

C++:
[pedantic]
printf("Die Wurzel von %lf is %lf\n", x, y);
[/pedantic]


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 02.09.2004 um 17:17 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.09.2004, 17:20 Uhr
0xdeadbeef
Gott
(Operator)


Nicht-ANSI-C++ != automatisch falsch, aber conio.h ist schon mal generell falsch, iostream.h ist zumindest hoffnungslos veraltet, wenn ein moderner Compiler das unterstützt, ist es eher Zufall, und math.h hat in einem C++-Programm nun wirklich überhaupt nichts zu suchen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.09.2004, 20:55 Uhr
(un)wissender
Niveauwart


Erstens ist conio.h nicht generell falsch, aber unportabel.
Zweitens kannst du davon ausgehen, das iostream.h bis in alle Ewigkeit unterstützt wird, einfach weil alter Code weiterhin kompilierbar sein muss.

Natürlich sollte man auch jeden Fall conio.h vermeinden und cmath, iostream nehmen, da sind wir einer Meinung.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.09.2004, 08:57 Uhr
Tommix



Naja, ich würde sagen die Kombination aus iostream.h und using namespace std ist tatsächlich falsch, weil in diesem Fall der namespace nicht definiert wird. Das ist somit weder alt noch neu korrekt - wenn es denn ein irgendwie standartisiertes C++ sein soll.
Ansonsten ist die pauschale Frage "Was ist daran falsch?" nicht zu beantworten, weil ja ein Compiler, der über den Standard hinausgeht bzw. sich nicht an ihn hält oder gar kein C++-Compiler ist usw. praktisch jeden denkbaren Quelltext übersetzen könnte:
[nonsense]
Mein Compiler (Fischl Zeh) schluck das nicht:

C++:
10 print "Hallo"
20 a = 2+2


Bei meinem Kumpel geht es aber. Was ist daran falsch?
[/nonsense]

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.09.2004, 09:51 Uhr
RedEagle



aus dem code werde ich nicht schlau, sind das Zeilenangaben am anfang??
wenn das der Original code ist, würden zwei ";" das Problem lösen
--
MFG RedEagle

Dieser Post wurde am 03.09.2004 um 09:52 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.09.2004, 13:42 Uhr
Pablo
Supertux
(Operator)


Ich stimme Tommix zu, eine Bibliothek zu benutzen ist sicherlich nicht falsch, außer wenn man weiß, dass Bibliothek nichts taugt. Abgesehen davon kann man nicht sagen, dass es falsch sei.

Was aber falsch ist, ist conio.h und getch(), clrscr(), system("PAUSE") ... von conio.h im ANSI C Forum zu benutzen!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 03.09.2004 um 13:43 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: