Checking ascii values of char input

This is a discussion on Checking ascii values of char input within the C Programming forums, part of the General Programming Boards category; Hello all Im having a bit of a problem with ascii character input, i need the program to be able ...

  1. #1
    Registered User
    Join Date
    Apr 2003
    Posts
    8

    Checking ascii values of char input

    Hello all

    Im having a bit of a problem with ascii character input, i need the program to be able check the ascii values of characters, as it must only be able to accept characters with ascii values between 32 and 126 (printable characters). Its a 2 dimensional array to fill up, inarray[MAXINDEX][MAXCHARS], where MAXINDEX=6 and MAXCHARS=128

    Code:
    int getmessage()
    {
        int Count=0;
        char *rc;
        int MINASCII=31;
        int MAXASCII=127;
        /*
        * want to check the ASCII values of chars input, but
        * program thinks the input values have to be integers
        * between 31 and 127
        */
    
    	printf("Please enter the Message.\nThe message can have up to 6 lines\n");
    
    /* this accepts first line of input */
    	while( Count < MAXINDEX && (rc = fgets( inarray[Count], MAXCHARS, stdin)) && *rc != '\n' )  
    
    /*this is supposed to be the check to see if the inputted
    *characters have ascii values 32-126
    */
                     if ( fgets > MAXASCII || fgets < MINASCII)
                             printf("Invalid Input, please enter ascii character from 32-126\n");
                     else
                    Count++;  /* this starts filling the second dimension of the array */
    
      return 0;
    }

  2. #2
    Registered User
    Join Date
    Apr 2003
    Posts
    8
    cheers mate, thanks!

  3. #3
    Just Lurking Dave_Sinkula's Avatar
    Join Date
    Oct 2002
    Posts
    5,006
    You may also want to look into isprint.
    Code:
    #include <stdio.h>
    #include <ctype.h>
    #include <limits.h>
    
    int main(void)
    {
       int i, j = 0;
       puts("Printable Characters:");
       for ( i = 0; i < CHAR_MAX; ++i )
       {
          if ( isprint(i) )
          {
             printf(" %3d %c%c", i, i, j++ % 8 == 7 ? '\n' : ' ');
          }
       }
       return 0;
    }
    
    /* my output
    Printable Characters:
      32     33 !   34 "   35 #   36 $   37 %   38 &   39 '
      40 (   41 )   42 *   43 +   44 ,   45 -   46 .   47 /
      48 0   49 1   50 2   51 3   52 4   53 5   54 6   55 7
      56 8   57 9   58 :   59 ;   60 <   61 =   62 >   63 ?
      64 @   65 A   66 B   67 C   68 D   69 E   70 F   71 G
      72 H   73 I   74 J   75 K   76 L   77 M   78 N   79 O
      80 P   81 Q   82 R   83 S   84 T   85 U   86 V   87 W
      88 X   89 Y   90 Z   91 [   92 \   93 ]   94 ^   95 _
      96 `   97 a   98 b   99 c  100 d  101 e  102 f  103 g
     104 h  105 i  106 j  107 k  108 l  109 m  110 n  111 o
     112 p  113 q  114 r  115 s  116 t  117 u  118 v  119 w
     120 x  121 y  122 z  123 {  124 |  125 }  126 ~
    */
    7. It is easier to write an incorrect program than understand a correct one.
    40. There are two ways to write error-free programs; only the third one works.*

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. get keyboard and mouse events
    By ratte in forum Linux Programming
    Replies: 10
    Last Post: 11-17-2007, 04:42 PM
  2. Problems about gcc installation
    By kevin_cat in forum Linux Programming
    Replies: 4
    Last Post: 08-09-2005, 09:05 AM
  3. Half-life SDK, where are the constants?
    By bennyandthejets in forum Game Programming
    Replies: 29
    Last Post: 08-25-2003, 11:58 AM
  4. I'm having a problem with data files.
    By OmniMirror in forum C Programming
    Replies: 4
    Last Post: 05-14-2003, 09:40 PM
  5. getline problem
    By Unregistered in forum C++ Programming
    Replies: 4
    Last Post: 10-06-2001, 09:28 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21