Wie ausgabeformat von zahlen ändern?
-
ok, soweit einleuchtend
http://www.cplusplus.com/reference/iostream/ios_base/setf.html
aber wenn ich dann sowas schreibe
cout.setf(ios::fixed)
bekomm ich ne Fehlermeldung.
wo gehört die zeile denn hin bzw ist das überhaupt richtig?
-
physikus schrieb:
bekomm ich ne Fehlermeldung.
Wie wäre es, wenn du uns die Fehlermeldung mitteilst? Wieso schreibt man die eigentlich nicht automatisch mit hin?
Grüssli
-
sorry
[C++ Fehler] Unit1.cpp(16): E2141 Fehler in der Deklarationssyntax
-
Dann tippe ich mal auf folgendes:
cout.setf(ios::fixed);
-> Semikolon vergessen ...
Grüssli
-
nein, das is es leider nicht.
-
Dann zeig mal den Kontext.
-
//--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #include <iostream> #pragma hdrstop #include "Unit1.h" #include "Project1.cpp" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; cout.setf(ios::fixed); #define PI 3.1415926535 #define ALPHA1 PI/2 #define ALPHA2 PI*7/6 . . .
-
Dachte ich mir, dass da was nicht stimmen kann. Anweisungen müssen innerhalb einer Funktion stehen.
-
Hi
das hab ich auch schon versuchtvoid __fastcall TForm1::Button1Click(TObject *Sender) { cout.setf(ios::fixed); . . .
aber dann kommt folgendes
[C++ Fehler] Unit1.cpp(63): E2451 Undefiniertes Symbol 'cout'
[C++ Fehler] Unit1.cpp(63): E2090 Qualifizierer 'ios' ist kein Name einer Klasse oder einer Struktur
[C++ Fehler] Unit1.cpp(63): E2121 ) fehlt beim Funktionsaufruf
-
Schreib mal
std::
vorcout
undios
. Der Header<iostream>
wurde vorher eingebunden?
-
wow super.... std hat das Problem gelöst.
aber, wenn ich jetzt schreibestd::cout<<setprecision(5);
sagt er setprecision sei eine undefinierte Funktion.....
-
Sehr viel scheinst du ja nicht gerade zu überlegen...
Wie alles in der Standardbibliothek ist auch
setprecision()
im Namensraumstd
.
-
Nexus schrieb:
Sehr viel scheinst du ja nicht gerade zu überlegen...
Wie alles in der Standardbibliothek ist auch
setprecision()
im Namensraumstd
.Guten Morgen
Das dachte ich mir das das jetzt kommt, aber das hab ich natürlich auch versucht.std::cout>>std::setprecision(5);
---> [C++ Fehler] Unit1.cpp(72): E2316 'setprecision' ist kein Element von 'std'
-
Ich wette jetzt hast du vergessen den Header
<iomanip>
zu inkludieren ...
Sag mal, hast du schon mal ein sinnvolles Tutorial oder Buch zu C++ gelesen?Grüssli
-
hmm, hab ich includet aber funktioniert trotzdem nicht.
an lesen bin ich dran,bin gerade beim Umstieg von C auf C++.Aber tut mir leid das ich kein guter Programmiere bin. Trotzdem danke für die hilfegruß
-
versuchs mal mit denken und verstehen was man macht
-
Probier mal das Beispiel von hier, das sollte funktionieren, sonst ist dein Compiler Schrott
physikus schrieb:
Aber tut mir leid das ich kein guter Programmiere bin.
Quatsch, das braucht dir nicht Leid tun, wir haben alle mal angefangen und das Forum ist für Fragen da
edit: Ok, sehe grad dass du die VCL (Borland Builder?) verwendest, keine Ahnung ob man da das Beispiel einfach so kompilieren kann.
-
Ist mir nur gerade so aufgefallen:
std::cout>>std::setprecision(5);
Das wird sicher aus einem anderen Grund noch einen Fehler erzeugen.
std::cout << std::setprecision(5);
Den falschen Shift-Operator verwendet
Für deine Fehlermeldung, zeig doch nochmals etwas mehr Kontext. Oder ein Minibeispiel, welches wir kompilieren können, bei dir aber der gleiche Fehler erzeugt. So ein Minibeispiel hilft einem selber oft auch, einen Fehler zu finden
Grüssli
-
Hallo
Hatte gestern leider keine Zeit, aber hier jetzt mal ein kleines Beispiel://--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #include <iostream> #include <iomanip> #pragma hdrstop #include "Unit1.h" #include "Project1.cpp" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- std::cout.setf(std::ios::fixed); std::cout<<std::setprecision(3); void __fastcall TForm1::Button1Click(TObject *Sender) { float a=1465555; float b=0; b=1/a; Edit1->Text=b; } //---------------------------------------------------------------------------
Wenn ich das compilieren will, bekomm ich folgende Meldung:
[C++ Fehler] Unit1.cpp(24): E2356 Redeklaration von '_STL::cout' mit anderem Typ
[C++ Fehler] iostream(51): E2344 '_STL::cout' bereits deklariert
[C++ Fehler] Unit1.cpp(25): E2356 Redeklaration von '_STL::cout' mit anderem Typ
[C++ Fehler] iostream(51): E2344 '_STL::cout' bereits deklariertMein Wunsch wäre nun das er mir 0.000 ausgibt, also keine exp schreibweise und nur 3 nachkommastellen.
Arbeiten tue ich mit dem Borland C++ Builder 6.0 PesonalGruß