Re: Getting cout<<fixed to work.
"cmay" <cmay@walshgroup.com> wrote in message
news:1153631509.740033.176490@s13g2000cwa.googlegroups.com
Hello,
I am trying to write a very very very simple program with VC++ 6.
I have the following headers:
#include "stdafx.h"
#include "cmath"
#include "iostream.h"
#include "iomanip.h"
then trying to use:
cout << fixed
will produce the error
'fixed' : undeclared identifier.
This is after having turned off the "use precompiled headers".
Before, when I did have the use precompiled headers, using fixed
would compile, but it would actually write out a hex value when you
did count << fixed. Specifically, it would write 0x00401073.
I found that using setiosflag(ios::fixed) will work, but why doesn't
the normal fixed work?
Also, can anyone explain pre compiled headers, and why I need the
include "stdafx.h" and "using namespace std;" when nothing in my books
show these lines? I'm guessing its a VC++ thing, but can I do without
them?
Your compiler is old and your books are apparently even older.
C++ was standardized in 1998 and VC++ 6 is based on a draft of that
standard. It is non-standard in many respects, including the form of the
standard library and the way it handles templates. Code like
#include "iostream.h"
#include "iomanip.h"
is non-standard and won't compile on VC++ 2005.
stdafx.h is used with pre-compiled headers. If you are not using precompiled
headers, then it is not necessary to #include "stdafx.h". However, if you go
from a situation where precompiled headers were used to one where they are
not, then obviously you lose any #includes that the precompiled headers were
supplying, so these need to be manually replaced.
Namespaces were introduced with the 1998 standard. They are not Microsoft
specific (though precompiled headers are).
You might find someone willing and able to guide you through the ancient
dialect used by VC++ 6, but unless you need to support legacy code, it would
make a whole lot more sense to get a copy of VC++ 2005 and some new books.
The most basic version of VC++ 2005 can be downloaded for free from here:
http://msdn.microsoft.com/vstudio/express/visualc/
You can download a good book two volume book on modern C++ here:
http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
or you can buy them as hardcopies. Also highly recommended (and much
shorter) is Accelerated C++ by Koenig and Moo:
http://www.acceleratedcpp.com/
but this is only available in hardcopy.
--
John Carson