November 24, 2006
ralph wrote:
> this should work, right?
> 
> code:
> 
> #include <iostream.h>
> int main()
> {
> int x = 5;
> int y = 7;
> cout "\n";

need an operator between cout and "\n"

> cout << x + y << " " << x * y;
> cout "\n";
> return 0;
> }
> 
> error:
> 
> cout "\n";
>         ^
> ch1_1.cpp(6) : Error: ';' expected following declaration of struct member
> cout "\n";
>         ^
> ch1_1.cpp(8) : Error: ';' expected following declaration of struct member
> --- errorlevel 1
> 
November 24, 2006
yep, that was it!!

I have this html 'book' called teach yourself c++ in 21 days, and I copy and paste the examples into the editor and compile them, and they seem to have syntax errors sometimes. Maybe the rest will be better, and maybe this is a good way to learn, I dunno, but it seems odd that the author would do this.

It's also odd that I'm not getting better error messaging from any of the compilers, that would make it easier to fix the errors. I am trying out dmc, turbo c++ 3.0, and turbo c++ 10.1. All give basically the same cryptic error message. Anything better out there? Ideally I'd like to find something to make games with, something that I can do graphics and sound with, not create applications or standard forms or the like. More of a console app I guess?
November 24, 2006
ralph wrote:
> It's also odd that I'm not getting better error messaging from any of the
> compilers, that would make it easier to fix the errors. I am trying out dmc, turbo
> c++ 3.0, and turbo c++ 10.1. All give basically the same cryptic error message.
> Anything better out there? Ideally I'd like to find something to make games with,
> something that I can do graphics and sound with, not create applications or
> standard forms or the like. More of a console app I guess?

Lousy error messages is a standard feature of C++. It's fallout from the syntax being so complicated, the compiler cannot very well guess what you were trying to do.
December 01, 2006
> A standard compliant preprocessor will not work with text files that are invalid C code. The preprocessor is defined to work by tokenizing the source text into preprocessor tokens; if there are non-C tokens in the source text, it will (correctly) fail.

Right, preprocessor works with C tokens but not necessary with C programs. Here's an example:

-[cut a.c]-----------------
#define world Earth
hello, world
-[end cut]-----------------

Everything is built from correct tokens but "dmc -e a.c" refuses to preprocess the "program" with the following error:

a.c(2) : Error: missing ',' between declaration of 'The' and 'Earth'

Am I still wrong?
December 01, 2006
== Quote from Paul Smirnov (s.paul@mail.ru)'s article
> > A standard compliant preprocessor will not work with text files that are invalid C code. The preprocessor is defined to work by tokenizing the source text into preprocessor tokens; if there are non-C tokens in the source text, it will (correctly) fail.
> Right, preprocessor works with C tokens but not necessary with C programs. Here's an example:

Oops... It was:

-[cut a.c]-----------------
#define world The Earth
hello, world
-[end cut]-----------------

> Everything is built from correct tokens but "dmc -e a.c" refuses to preprocess the
> "program" with the following error:
> a.c(2) : Error: missing ',' between declaration of 'The' and 'Earth'
> Am I still wrong?

December 01, 2006
Paul Smirnov wrote:
>> A standard compliant preprocessor will not work with text files that are
>> invalid C code. The preprocessor is defined to work by tokenizing the
>> source text into preprocessor tokens; if there are non-C tokens in the
>> source text, it will (correctly) fail.
> 
> Right, preprocessor works with C tokens but not necessary with C programs. Here's
> an example:
> 
> -[cut a.c]-----------------
> #define world Earth
> hello, world
> -[end cut]-----------------
> 
> Everything is built from correct tokens but "dmc -e a.c" refuses to preprocess the
> "program" with the following error:
> 
> a.c(2) : Error: missing ',' between declaration of 'The' and 'Earth'
> 
> Am I still wrong?

dmc is still running the c compiler. All -e does is to send preprocessed output to the console when an error is diagnosed. To preprocess only, use the standalone preprocessor, sppn.exe.
1 2
Next ›   Last »