"Cam" <retsigerymmudathotmaildotcom> wrote in message
news:40******@duster.adelaide.on.net
Hi everyone,
Before I answer to a (hopefully) helpful reply to this post, I have
been rapped over the knuckles for 'top-posting' and I do not wish to
be a learner poster who observes poor netiquette as I am a firm
believer in consideration ... to this end, could somebody please tell
me how I reply to a message without top-posting? Do I need to have my
original post selected when I hit the 'reply' button?
It is simply a question of where you choose to type your reply.
Here's my question (and please remember that I'm teaching myself as I
go and initially learning what I need to complete assignments
although it is my intention to obtain some sort of proficiency at
this code ..)
Previously, I was using the conio.h header and the getche function to
read keyboard input one character at a time to place individual
characters into an array.
As the code is required to compile on a Unix system, I have changed
to the non-platform specific stdio.h header and am using getchar as
suggested on this NG.
The user inputs two 8 bit numbers which then have arithmetic
performed on them. I do this by calling a KeyboardInput() function
twice and having the function modify two arrays by using pointers.
The problem is that the first call of the KeyboardInput() function
works fine. When the function is called a second time (for key2[7] to
key2[0]) the values from the first first call are placed into the
key2 array as if the user had entered them.
Advice is greatly appreciated.
Kind regards,
Cam
code follows:
Since you are keen on newsgroup etiquette, a couple more pointers. Supply
compileable code, i.e., compile it yourself and then copy and paste it
exactly as is. The code you have given below is missing the definition of
some variables, making it difficult to figure out where things have gone
wrong.
The quickest way to diagnose most problems is to run the code through a
debugger. If the code won't compile and people have to guess at missing
code, then this process is tedious and inaccurate.
A couple of comments:
1. All of the pointer variables you define seem redundant. You can just use
the array names directly.
2. Expressions like:
for ( counter = 7; (counter > -1) && ((ch = getchar()) != EOF) && (ch
!='\n'); counter -- )
are wonderfully succinct but impossible to debug. Separate out the various
pieces so you can see how they are working.
In as far as I can reproduce your code, given the many omissions, I think
that the problem is that, when you press Enter after the first number, a
'\n'
is placed in the input stream. This is never cleared, so it is the first
character read the second time around, causing the KeyboardInput function to
immediately exit. You can solve the problem by adding
while (ch != '\n')
ch = getchar();
after the for loop.
--
John Carson
1. To reply to email address, remove donald
2. Don't reply to email address (post here instead)