• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 457
  • Last Modified:

STDIN

Hi

I'm a fairly new programmer so go easy on me!! , but my question is this:

I have got to write a driver for a simple text editor  program. One of the pascal files in the program has this code:

if (feof(STDIN))
  *c = ENDFILE;
else
{
  fread(&ch, sizeof(ch), 1, STDIN);

if (feof(STDIN))
  *c = ENDFILE;
else
*c = ord(ch);
}

return *c;

Now, I know there is not much information here but it is supposed to be a text copier of some sort but when I call this file from the driver, STDIN is always NULL and so throws and error. Now I always thought that STDIN was input from the keyboard but I have never actually used it before in this context. This means that I cannot understand how it works... arrrghhh!!
Do I need to link STDIN to the keyboard somehow???
Do I need to link it to a file in this respect (dont know how to do this either)
Just what is going on .. why is it there :-(

the function is called from a C file driver.

Please help. I will do my best to provide any more info if required. But I havnt got a lot.

Thank you
Dave
0
Red_Dash_Dave
Asked:
Red_Dash_Dave
  • 2
1 Solution
 
mlmccCommented:
I think you need to ask this in the C forum rather than the pascal forum.

mlmcc
0
 
Wim ten BrinkSelf-employed developerCommented:
Ahh, I was wondering... Strange syntax for a Pascal file... :-) In Pascal it would look more like:

  if eof(Input) then begin
    C := ENDFILE;
  end else begin
    Read(Input, Ch);
    if eof(Input) then begin
      c := ENDFILE;
    end else begin
      c := ord(ch);
    end;
  end;
  Result := c;

But perhaps it's a good idea to check your sources a bit better. You seem to mis them up a bit.
0
 
mlmccCommented:
Glad I could help

mlmcc
0

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now