ASCII Code confusion

Status
Not open for further replies.

n2casey

Super Hero - Super Powers
I m working on a project in C++. The prob I m facing is to distinguish between ASCII Codes, since some ASCII codes have two keys for them.

Code:
[b]ASCII Code[/b]     [b]Key-1[/b]     [b]Key-2[/b]

  59            ;         F1
  60            <         F2
  .             =          .
  .             >          .
  .             ?          .
  .             @          .
  .             A          .
  .             B          .
  .             C          .
  68            D         F10

  71            Home      G
  82            Insert    R
                                        etc.

So how to a write program which scan any key but can distinguish between them.
 

ahref

In the zone
For key-2, you have to press ctrl key means programatically you have to enable control key, which you can do by modifying memory address 0x417.
 
OP
n2casey

n2casey

Super Hero - Super Powers
ahref said:
For key-2, you have to press ctrl key means programatically you have to enable control key, which you can do by modifying memory address 0x417.

Plz tell more clearly.
 

ahref

In the zone
check this program
void main()
{
char x,y,z;
clrscr();
printf("Press any key");
x=getch();

if(x==0)
{
y=getch();
printf("\nExtended Ascii code is %d",y);
}
else
{
printf("\nAscii Code is %d",x);
}
getch();
}
 
OP
n2casey

n2casey

Super Hero - Super Powers
Still facing the problem.

Look at this

Code:
void main()
{
...
char x;
x=getch();
if(x==59)
pf("x = %d",x);
else
pf("\a");
...
....
}

Since according to this table
Code:
[b]ASCII Code[/b]     [b]Key-1[/b]     [b]Key-2[/b]

  59            ;         F1
  60            <         F2
  .             =          .
  .             >          .
  .             ?          .
  .             @          .
  .             A          .
  .             B          .
  .             C          .
  68            D         F10

  71            Home      G
  82            Insert    R
                                        etc.

both ; & F1 key has ASCII code 59 & according to my program I want that when I press F1, a beep sound must b there & x = 59 must not print on screen but when I press ; no beep must occur & x = 59 must print on screen.
That's why I asked to distinguish btwn keys.
 

ahref

In the zone
void main()
{
char x,y,z;
clrscr();
printf("Press any key");
x=getch();

if(x==0)
{
y=getch();
printf("\a");
printf("\nExtended Ascii code is %d",y);
}
else
{
printf("\nAscii Code is %d",x);
}
getch();
}
 
OP
n2casey

n2casey

Super Hero - Super Powers
ahref said:
void main()
{
char x,y,z;
clrscr();
printf("Press any key");
x=getch();

if(x==0)
{
y=getch();
printf("\a");
printf("\nExtended Ascii code is %d",y);
}
else
{
printf("\nAscii Code is %d",x);
}
getch();
}

I have tried that but still problem not solved coz the statement
Code:
if(x==0)
{
y=getch();
printf("\a");
printf("\nExtended Ascii code is %d",y);
}
never gets executed. Every time I press F1, F2 etc. then first statement is executed & it prints Ascii Code is ...
 

ahref

In the zone
That code should execute when you press F1,F2 key etc. It is working fine in my end. Probably you have to flush your keyboard buffer.
 
OP
n2casey

n2casey

Super Hero - Super Powers
OK ahref. Unfortunately your trick doesn't work on my system but I have solved my prob by modifying the program code.
Anyway, thx a lot for ur help. Ur trick added a new idea in my programming knowledge.
 
OP
n2casey

n2casey

Super Hero - Super Powers
Now a new prob. in another program.
Take a look at this prog.

Code:
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void main()
{
int i=0;
char c='\0',s[50];
clrscr();
do
{
 c=getch();
 if(c>31 && c<127)
 {
  s[i]=c;
  i++;
  }
 else if(c==13)
 printf("%s",s);
 else              //or else if(c==0) both r ineffective
 {
  sound(400);
  delay(50);
  nosound();
  }
 }while(c!=13);
getch();
}

So for this prog, Keys F1 to F12, Home, End etc. must not b stored in string but they r stored in string.
I want that F1, F2.... etc. keys must not b stored in string. How can I do that?
 

ahref

In the zone
I have done slight modifications. now it is not storing function keys check it
Code:
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void main()
{
int i=0;
char c='\0',s[50],d;
clrscr();
do
{
 c=getch();
 if(c>31 && c<127)
 {
  s[i]=c;
  i++;
  }
 else if(c==13)
 {
 s[i]='\0';
 printf("%s",s);
 }
 else              //or else if(c==0) both r ineffective
 {
  d=getch();
  sound(400);
  delay(50);
  nosound();
  }
 }while(c!=13);
getch();
}
 
OP
n2casey

n2casey

Super Hero - Super Powers
OK ahref. Thx a lot for ur help.
Ur slight modification made a big difference. I don't know that why that idea doesn't came in my mind :(
Anyway, thx again & repu for u.
 
OP
n2casey

n2casey

Super Hero - Super Powers
pathiks said:
offtopic: wich book to refer for c++... i ll start in a few days...
Book for C++ & OOP in C++, which I have -

THE WAITE GROUP'S
OBJECT ORIENTED PROGRAMMING IN
TURBO C++
Writer - ROBERT LAFORE
Publishers - Galgotia Publicators Pvt. Ltd., 5, Ansari Road, Daryaganj, New Delhi

Price - 350 Rs.
 
Last edited:

Pathik

Google Bot
@n2casey r u into engg???? wich yr??? wich book is recommended by univ???
n thx for the name.. i ll try to get it...
 
OP
n2casey

n2casey

Super Hero - Super Powers
pathiks said:
@n2casey r u into engg???? wich yr??? wich book is recommended by univ???
n thx for the name.. i ll try to get it...

I have completed my Engg. in June-06.
The book I have told U is recommended by Univ. for OOP in C++.
In First yr I read Let Us C or C++ by Yashwant Kanitker to learn C from beginning. In third yr I read the book

THE WAITE GROUP'S
OBJECT ORIENTED PROGRAMMING IN
TURBO C++
Writer - ROBERT LAFORE

& that time I come to know that it covers all topic in detail with very ease & lot of exapmles.
Let Us C/C++ both the books r good for beginners & easy too but will not cover all topics & so I told u to read OOP in Turbo C++ by Robert Lafore.
 

Pathik

Google Bot
@n2casey i saw the book OOPS in C++ by robert lafore...
but it was priced 540 rs... r u sure the price is 350 rs.
 
Status
Not open for further replies.
Top Bottom