473,386 Members | 1,610 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

I have a problem in my study

I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);
if (argc==1)
filecopy(stdin,stdout);
else
while (--argc>0)
if ((fp=fopen(*++argv,"r"))==NULL) {
printf("cat:can't open %s\n",*argv);
return 1;
} else {
filecopy(fp,stdout);
fclose(fp);
}
return 0;
}
void filecopy(FILE *ifp,FILE *ofp)
{int c;
while ((c=getc(ifp))!=EOF)
putc(c,ofp);
}

Oct 30 '06 #1
25 1285

qa*******@eyou.com wrote:
I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);
if (argc==1)
filecopy(stdin,stdout);
else
while (--argc>0)
if ((fp=fopen(*++argv,"r"))==NULL) {
printf("cat:can't open %s\n",*argv);
return 1;
} else {
filecopy(fp,stdout);
fclose(fp);
}
return 0;
}
void filecopy(FILE *ifp,FILE *ofp)
{int c;
while ((c=getc(ifp))!=EOF)
putc(c,ofp);
}
Well, first, if you know function main is int. Add the type befor its
name. Do NOT leave that position blank. Second, 'stdin' doesn't has an
EOF until you press Ctrl+d, thus you can't exit.

Oct 30 '06 #2
Cong Wang said:
>
qa*******@eyou.com wrote:
>I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);
if (argc==1)
filecopy(stdin,stdout);
else
while (--argc>0)
if ((fp=fopen(*++argv,"r"))==NULL) {
printf("cat:can't open %s\n",*argv);
return 1;
} else {
filecopy(fp,stdout);
fclose(fp);
}
return 0;
}
void filecopy(FILE *ifp,FILE *ofp)
{int c;
while ((c=getc(ifp))!=EOF)
putc(c,ofp);
}

Well, first, if you know function main is int. Add the type befor its
name. Do NOT leave that position blank.
That's a minor style point, and not his problem.
Second, 'stdin' doesn't has an
EOF until you press Ctrl+d, thus you can't exit.
Wrong.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
Oct 30 '06 #3

qa*******@eyou.com wrote:
I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?
I don't like the formatting of your code, but I can't see an obvious
fatal flaw.

With more braces (cos' I wanted to see what I was doing) and some
tidied indentation, it worked fine on my system.

A better explanation of what your problem was may help - do you mean
that if you just ran your program with no arguments, you couldn't exit
from it? If so, do you know what you need to type on your platform to
indicate EOF on stdin?

Oct 30 '06 #4

Richard Heathfield wrote:
Cong Wang said:

qa*******@eyou.com wrote:
I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);
if (argc==1)
filecopy(stdin,stdout);
else
while (--argc>0)
if ((fp=fopen(*++argv,"r"))==NULL) {
printf("cat:can't open %s\n",*argv);
return 1;
} else {
filecopy(fp,stdout);
fclose(fp);
}
return 0;
}
void filecopy(FILE *ifp,FILE *ofp)
{int c;
while ((c=getc(ifp))!=EOF)
putc(c,ofp);
}
Well, first, if you know function main is int. Add the type befor its
name. Do NOT leave that position blank.

That's a minor style point, and not his problem.
But I think it's important. ;-p
>
Second, 'stdin' doesn't has an
EOF until you press Ctrl+d, thus you can't exit.

Wrong.
Well, I forgot he used Window$. In fact, Win uses <Ctrl-Z><CRas EOF.
I am sorry, I can't afford a Windows and know little about it. ;-(

Oct 30 '06 #5
On Mon, 2006-10-30 at 01:54 -0800, qa*******@eyou.com wrote:
I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
Well, first off, it's best to be explicit about what main() returns:
int main(int argc, char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);
You can't have a prototype within another function. Move this to the
top of your program or into a header file.
if (argc==1)
filecopy(stdin,stdout);
Please use spaces liberally; horizontal space is free in this
particular piece of code, and it makes things much easier to read.
else
while (--argc>0)
if ((fp=fopen(*++argv,"r"))==NULL) {
printf("cat:can't open %s\n",*argv);
return 1;
} else {
filecopy(fp,stdout);
fclose(fp);
}
Looks good, except that 1 is not a portable return value from main().
#include <stdlib.hand return EXIT_FAILURE instead.
return 0;
}
void filecopy(FILE *ifp,FILE *ofp)
{int c;
while ((c=getc(ifp))!=EOF)
putc(c,ofp);
}
That looks okay as well, although I strongly suggest that you fix your
formatting. As an example, here's your last function:

void filecopy(FILE *ifp, FILE *ofp)
{
int c;
while ((c = getc(ifp)) != EOF)
putc(c,ofp);
}
I believe your problem lies in the fact that you aren't inputting EOF
to your program. On DOS this would be Ctrl+Z, and on UNIX, it would
be Ctrl+D.

--
Andrew Poelstra <http://www.wpsoftware.net>
For email, use 'apoelstra' at the above site.
"You're only smart on the outside." -anon.

Oct 30 '06 #6
Andrew Poelstra wrote:
On Mon, 2006-10-30 at 01:54 -0800, qa*******@eyou.com wrote:
{ FILE *fp;
void filecopy(FILE *,FILE *);

You can't have a prototype within another function.
It's probably a bad idea to do so, but there is nothing disallowing it.

Oct 30 '06 #7
Andrew Poelstra wrote:

(fx:snippage)
On Mon, 2006-10-30 at 01:54 -0800, qa*******@eyou.com wrote:
>{ FILE *fp;
void filecopy(FILE *,FILE *);

You can't have a prototype within another function.
Since when?

--
Chris "1829" Dollin
A rock is not a fact. A rock is a rock.

Oct 30 '06 #8

-------------------------------------------------------------------------
#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);

if (argc==1)
{
printf("No File!!!");
return;
}
else
while (--argc>0)
if ((fp=fopen(*++argv,"r"))==NULL) {
printf("cat:can't open %s\n",*argv);
return 1;
} else {
filecopy(fp,stdout);
fclose(fp);
}
return 0;
}
void filecopy(FILE *ifp,FILE *ofp)
{int c;
while ((c=getc(ifp))!=EOF)
putc(c,ofp);
}
--------------------------------------------------------------------------

Oct 30 '06 #9
On Mon, 30 Oct 2006 15:19:27 UTC, Andrew Poelstra
<ap*******@false.sitewrote:
>
You can't have a prototype within another function. Move this to the
top of your program or into a header file.
Not true. That is absolutely legal. The visibility of the prototye is
restricted to the function only but that's all.
if (argc==1)
filecopy(stdin,stdout);

Please use spaces liberally; horizontal space is free in this
particular piece of code, and it makes things much easier to read.
--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2 Deutsch ist da!
Oct 30 '06 #10
On 30 Oct 2006 01:54:09 -0800, in comp.lang.c , qa*******@eyou.com
wrote:
>I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);
its normal to declare function prototypes outside main. C doesn't have
the idea of local function definitions.
while ((c=getc(ifp))!=EOF)
how do you signal EOF? Remember, its not a character, its a signal.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Oct 30 '06 #11
On Mon, 30 Oct 2006 23:03:44 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
On 30 Oct 2006 01:54:09 -0800, in comp.lang.c , qa*******@eyou.com
wrote:
I use operating systems of windows xp ,
and compiler is trubo c 3.0
when I input data,the following program can't be exited.
what happen to this program?
Is the wrong with the compiler?

#include <stdio.h>
main(int argc,char *argv[])
{ FILE *fp;
void filecopy(FILE *,FILE *);

its normal to declare function prototypes outside main. C doesn't have
the idea of local function definitions.
No. It is normal to declare a prototype where it gets used. That
includes it inside a function.

Yes, you would declare all prototypes outside any function - but when
you are sure that you needs it only inside one function it can be a
good idea to hide that from any else.
while ((c=getc(ifp))!=EOF)

how do you signal EOF? Remember, its not a character, its a signal.
Hey, the OP had declared c as int - and getc() does not return char
but int. Read your book what getc returns - an char wided to int or
EOF.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2 Deutsch ist da!
Oct 31 '06 #12
Herbert Rosenau said:

<snip>
>
Hey, the OP had declared c as int - and getc() does not return char
but int.
Yes, but I think you'll find he was talking about how to indicate
end-of-file from a keyboard.
Read your book what getc returns - an char wided to int or
EOF.
s/char/unsigned char/

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
Oct 31 '06 #13
On Tue, 31 Oct 2006 10:29:20 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>On Mon, 30 Oct 2006 23:03:44 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>>
its normal to declare function prototypes outside main. C doesn't have
the idea of local function definitions.

No. It is normal to declare a prototype where it gets used. That
includes it inside a function.
Don't be ridiculous. If I didn't know better, I'd say you were a
troll.
>how do you signal EOF? Remember, its not a character, its a signal.

Hey, the OP had declared c as int - and getc() does not return char
but int. Read your book what getc returns - an char wided to int or
EOF.
Perhaps you want to learn to read. Where did I say getc returned a
char?

Next time, as DP would say, engage your brain before posting.

--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Oct 31 '06 #14
On Tue, 31 Oct 2006 12:16:55 UTC, Richard Heathfield
<in*****@invalid.invalidwrote:
Herbert Rosenau said:

<snip>

Hey, the OP had declared c as int - and getc() does not return char
but int.

Yes, but I think you'll find he was talking about how to indicate
end-of-file from a keyboard.
Read your book what getc returns - an char wided to int or
EOF.

s/char/unsigned char/
Grmpf, I tell my compilers always to use unsigned char for char as I
don't like signed char in any way, so I forget about signed char
except on the comiler flags or rareley when I declare them specially
as such for special usage.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2 Deutsch ist da!
Nov 1 '06 #15
On Tue, 31 Oct 2006 21:28:30 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
On Tue, 31 Oct 2006 10:29:20 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
On Mon, 30 Oct 2006 23:03:44 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>
its normal to declare function prototypes outside main. C doesn't have
the idea of local function definitions.
No. It is normal to declare a prototype where it gets used. That
includes it inside a function.

Don't be ridiculous. If I didn't know better, I'd say you were a
troll.
how do you signal EOF? Remember, its not a character, its a signal.
Hey, the OP had declared c as int - and getc() does not return char
but int. Read your book what getc returns - an char wided to int or
EOF.

Perhaps you want to learn to read. Where did I say getc returned a
char?

Next time, as DP would say, engage your brain before posting.
You sayed getc() does not return EOF what is clearly false.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2 Deutsch ist da!
Nov 1 '06 #16
Herbert Rosenau wrote:
On Tue, 31 Oct 2006 21:28:30 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>On Tue, 31 Oct 2006 10:29:20 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>>On Mon, 30 Oct 2006 23:03:44 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
<snip>
>>>how do you signal EOF? Remember, its not a character, its a signal.
Hey, the OP had declared c as int - and getc() does not return char
but int. Read your book what getc returns - an char wided to int or
EOF.
Perhaps you want to learn to read. Where did I say getc returned a
char?

Next time, as DP would say, engage your brain before posting.
You sayed getc() does not return EOF what is clearly false.
No, Mark asked how you signal EOF and said to remember it is not a
character, he did not says that getc does not return it.
--
Flash Gordon
Us Marks have to stick together even if Mr McIntyre is Scottish and I'm
English...
On the other hand he probably thinks of me as a soft southern sasanack ;-)
Nov 1 '06 #17
"Herbert Rosenau" <os****@pc-rosenau.dewrites:
On Tue, 31 Oct 2006 21:28:30 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>On Tue, 31 Oct 2006 10:29:20 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>On Mon, 30 Oct 2006 23:03:44 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
its normal to declare function prototypes outside main. C doesn't have
the idea of local function definitions.

No. It is normal to declare a prototype where it gets used. That
includes it inside a function.

Don't be ridiculous. If I didn't know better, I'd say you were a
troll.
>how do you signal EOF? Remember, its not a character, its a signal.

Hey, the OP had declared c as int - and getc() does not return char
but int. Read your book what getc returns - an char wided to int or
EOF.

Perhaps you want to learn to read. Where did I say getc returned a
char?

Next time, as DP would say, engage your brain before posting.
You sayed getc() does not return EOF what is clearly false.
Herbert, I don't see where anyone said that "getc() does not return
EOF", at least not in what's quoted here. There were some
misstatements, but not that one. (I won't bother to enumerate them.)

The question Mark was addressing above was, if I recall correctly, the
problem that the OP was actually having: how does someone running the
program trigger an end-of-file condition? The answer is typically to
type control-D or control-Z at the keyboard, if the program's stdin is
coming from a keyboard. I think you misunderstood that point.

I suspect that you and Mark both understand all of this, and are
basically in agreement, but one or both of you got caught up on the
wording.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 1 '06 #18
On Wed, 1 Nov 2006 18:53:20 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>On Tue, 31 Oct 2006 21:28:30 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>On Tue, 31 Oct 2006 10:29:20 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>On Mon, 30 Oct 2006 23:03:44 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
its normal to declare function prototypes outside main. C doesn't have
the idea of local function definitions.

No. It is normal to declare a prototype where it gets used. That
includes it inside a function.

Don't be ridiculous. If I didn't know better, I'd say you were a
troll.
>how do you signal EOF? Remember, its not a character, its a signal.

Hey, the OP had declared c as int - and getc() does not return char
but int. Read your book what getc returns - an char wided to int or
EOF.

Perhaps you want to learn to read. Where did I say getc returned a
char?

Next time, as DP would say, engage your brain before posting.
You sayed getc() does not return EOF what is clearly false.
I said nothing of the sort. I said
"how do you signal EOF? Remember, its not a character, its a signal. "

Or do you claim that EOF is a character ? Thats a classic newby
mistake.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Nov 1 '06 #19
On Wed, 1 Nov 2006 23:18:36 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
Or do you claim that EOF is a character ? Thats a classic newby
mistake.
EOF is an int.

As C knows nothing about devices such as keyboard, screen, printers,
plotters, punch cards and so on there is no standard way you can do
from outside C to identify what ever may result in an EOF except to
read the documentation of your OS. The C runtime will ever deliver EOF
to your program when it sees that the stream is _behind_ the data it
holds.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2 Deutsch ist da!
Nov 2 '06 #20
On Thu, 2 Nov 2006 16:35:32 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>On Wed, 1 Nov 2006 23:18:36 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>Or do you claim that EOF is a character ? Thats a classic newby
mistake.

EOF is an int.
Lets be completely rigorous, so as to avoid any further confusion
between EOF and EOF :-)

EOF is macro returned by some library functions when an EOF condition
is signalled by the IO library. The EOF macro is in integer constant
with type int and a negative value. The EOF signal is something that
you need to generate if you want the OP's original proggy to work.
Neither of the above is necessarily the same as the EOF character
found in some ASCII charsets.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Nov 2 '06 #21
Mark McIntyre <ma**********@spamcop.netwrites:
On Thu, 2 Nov 2006 16:35:32 +0000 (UTC), in comp.lang.c , "Herbert
Rosenau" <os****@pc-rosenau.dewrote:
>>On Wed, 1 Nov 2006 23:18:36 UTC, Mark McIntyre
<ma**********@spamcop.netwrote:
>>Or do you claim that EOF is a character ? Thats a classic newby
mistake.

EOF is an int.

Lets be completely rigorous, so as to avoid any further confusion
between EOF and EOF :-)
Yes, let's be completely rigorous.
EOF is macro returned by some library functions when an EOF condition
is signalled by the IO library. The EOF macro is in integer constant
with type int and a negative value. The EOF signal is something that
you need to generate if you want the OP's original proggy to work.
Neither of the above is necessarily the same as the EOF character
found in some ASCII charsets.
EOF is a macro defined in <stdio.h>. It "expands to an integer
constant expression, with type int and a negative value, that is
returned by several functions to indicate _end-of-file_, that is, no
more input from a stream". Note that it's an integer constant
*expression*; an integer constant cannot have a negative value.

There is no "EOF signal". There is an end-of-file *indicator*
associated with an input stream. The word "signal" means something
else; see C99 7.14, "Signal handling", for details. I understand that
you were using the term "signal" in its common English sense, but it's
important to be precise.

<OT>
There is no character in ASCII named "EOF". Perhaps you're thinking
of "EOT"? Or was there an "EOF" character in some obsolete version of
ASCII?
</OT>

If you're running a program that takes input from an interactive
device (say, a keyboard), you need to know how to cause the
end-of-file indicator for an input stream associated with that device
to be set. That, I believe, is the probelm the OP was having (Mark,
you were right about that). The C standard says nothing about how
this is done, but typically typing either control-D or control-Z,
depending on the system, will do the job. This causes the end-of-file
indicator to be set, which causes the next call to getchar() (or
fgetc(), or ...) to return the value of EOF. (It also causes a call
to feof() to return true, but that's not as useful as some programmers
think it is.)

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 2 '06 #22
On Fri, 03 Nov 2006 00:18:04 GMT, in comp.lang.c , Keith Thompson
<ks***@mib.orgwrote:
>Mark McIntyre <ma**********@spamcop.netwrites:
>>
Lets be completely rigorous, so as to avoid any further confusion
between EOF and EOF :-)

Yes, let's be completely rigorous.
> EOF is macro

EOF is a macro defined in <stdio.h>.
I said that, I can't see any reason for you to repeat it, especially
since all you did was requote the part of the standard I quoted, but
there you go.
>There is no "EOF signal".
I disagree entirely. What do /you/ think your hardware does when you
press the magic keys that "create" an end-of-file event, if not signal
it?
>The word "signal" means something else;

This is the sort of thing that gets people a name for excessive
anality.
>see C99 7.14, "Signal handling", for details. I understand that
you were using the term "signal" in its common English sense,
Then why did you bother to be so silly?
><OT>
There is no character in ASCII named "EOF".
If you actually read what I said, you'll see that I never said that
there was.
>Perhaps you're thinking
of "EOT"? Or was there an "EOF" character in some obsolete version of
ASCII?
I have one in the printed manuals for my PCXT, at position decimal 26.
Which makes sense when you consider how you signalled EOF on such
hardware.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Nov 3 '06 #23
Mark McIntyre <ma**********@spamcop.netwrites:
On Fri, 03 Nov 2006 00:18:04 GMT, in comp.lang.c , Keith Thompson
<ks***@mib.orgwrote:
>>Mark McIntyre <ma**********@spamcop.netwrites:
>>>
Lets be completely rigorous, so as to avoid any further confusion
between EOF and EOF :-)

Yes, let's be completely rigorous.
>> EOF is macro

EOF is a macro defined in <stdio.h>.

I said that, I can't see any reason for you to repeat it, especially
since all you did was requote the part of the standard I quoted, but
there you go.
Yes, EOF is a macro; that part of your paragraph was correct. The
rest of your paragraph was, in my opinion, imprecise, especially given
that it was preceded by "Lets be completely rigorous".
>>There is no "EOF signal".

I disagree entirely. What do /you/ think your hardware does when you
press the magic keys that "create" an end-of-file event, if not signal
it?
I have no idea what my hardware does. The fact is, the word "signal"
has a specific meaning in C, and it doesn't apply here.

[snip]
>><OT>
There is no character in ASCII named "EOF".

If you actually read what I said, you'll see that I never said that
there was.
What you said was:
| Neither of the above is necessarily the same as the EOF character
| found in some ASCII charsets.

ASCII is a standard; it doesn't include a character named "EOF". I
suppose some character sets based on the ASCII standard might include
something called "EOF". I thought it was worth making the distinction
since we're being "completely rigorous". (And I may have slightly
misunderstood what you meant.)
>>Perhaps you're thinking
of "EOT"? Or was there an "EOF" character in some obsolete version of
ASCII?

I have one in the printed manuals for my PCXT, at position decimal 26.
Which makes sense when you consider how you signalled EOF on such
hardware.
Ok, but ASCII refers to that character as SUB.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 3 '06 #24
On Fri, 03 Nov 2006 23:00:54 GMT, in comp.lang.c , Keith Thompson
<ks***@mib.orgwrote:
>Mark McIntyre <ma**********@spamcop.netwrites:
>On Fri, 03 Nov 2006 00:18:04 GMT, in comp.lang.c , Keith Thompson
<ks***@mib.orgwrote:
>>>Mark McIntyre <ma**********@spamcop.netwrites:

Lets be completely rigorous, so as to avoid any further confusion
between EOF and EOF :-)
^^^^
>Yes, EOF is a macro; that part of your paragraph was correct. The
rest of your paragraph was, in my opinion, imprecise, especially given
that it was preceded by "Lets be completely rigorous".
Obviously you missed the smiley

(rest of thread snipped, as we both know we're being foolishly anal)
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Nov 4 '06 #25
Mark McIntyre <ma**********@spamcop.netwrites:
[...]
Obviously you missed the smiley
Ok, whatever.
(rest of thread snipped, as we both know we're being foolishly anal)
Speak for yourself.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 4 '06 #26

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Rohit | last post by:
Anyone in the UK interested in selling MCAD (VB .NET route) study material ? Could be the Microsoft course material, books or selft study guides..anything. I need it. Cheers ROhit
6
by: Peter E. Granger | last post by:
First, I would like to apologize in advance if this is not the appropriate place to post this message; of the .NET-related newsgroups I found, this seemed to be the most general. If the information...
0
by: usable_us | last post by:
Hello, Oracle's Usability group will be conducting an incentive-based two hour usability activity. (This is not a job posting but an invitation to a two hour activity) This email was not...
8
by: TechCrazy | last post by:
Hi folks, I want to study high quality c++ code - code that uses most of the techniques described in "Effective C++'/ 'More Effective C++ '/'Modern C++ Design' books. Where do I start? Any...
3
by: orekinbck | last post by:
Hi There What are the best value practice exam engines for 70-316? How does this strategy sound: * First iteration - Go through Kalani's training guide + MSDN +...
5
by: AndrwChau | last post by:
I am a programmer from Visual Foxpro. I have no expirence on the VB at all. What is the best way to study the VB .net. Should I study the VB v6 first? -- Andrew
6
by: toton | last post by:
Hi, Anyone have a link to comparative study of different C++ compilers and how much they conform to C++ language standard? Most of the big platforms I know have GCC which well supports C++...
28
by: grappletech | last post by:
I took Pascal and BASIC in a couple of beginner programming courses about a decade ago and did well with them. I am good with pseudocode, algorithms, and the mathematics of programming. I decided...
0
by: kirby.urner | last post by:
This archival (yet recent) posting to an obscure physics list might be of some interest to those taking a longer view. The work/study projects described below come from an Oregon think tank...
4
by: rishu1210 | last post by:
Hello, I prepare Case Study on student information system. I want content of this Case Study how it can be analyzed? how it can be parted? & I want project report of this case study.This Case Study...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.