Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C > Reading input p...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 25 Topic 26096 of 26198
Post > Topic >>

Reading input problem

by arnuld <sunrise@[EMAIL PROTECTED] > May 7, 2008 at 11:30 AM

I have a function named getword that read every single input from std.
input.

WHAT I WANTED:  I want it read the word if it has less than or equal to 30
characters. Anything else beyond that should be discarded and it should
ask the user for new input. Ctrl-D should exit from the program.

WHAT I GOT: It reads anything beyond 30 characters as the next word :\ and
I have to press Ctrl-D two times to exit from the program.


/* This program will simply create an array of pointers to integers 
 * and will fill it with some values while using malloc to create 
 * pointers to fill the array and then will print the values pointed 
 * by those pointers
 *
 * version 1.1
 *
 */



#include <stdio.h>
#include <ctype.h>


enum { MAX = 30 };

int getword( char *, int );


int main( void )
{  
  char word[MAX];

  while( getword( word, MAX ) )
    {
      printf( "---------->  %s\n", word );
    }



  return 0;
}

  

/*       A program that takes a single word as input. It will discard
 * the whole input if it contains anything other than the 26 alphabets 
 * of English. If the input word contains more than 30 letters then only 
 * the extra letters will be discarded . For general purpose usage of 
 * English it does not make any sense to use a word larger than this size.

 * Nearly every general purpose word can be expressed in a word with less 
 * than or equal to 30 letters. 
 *
 */
int getword( char *word, int max_length )
{
  int c;
  char *w = word;


  while( isspace( c = getchar() ) )
    {
      ;
    }

  if( isalpha( c ) )
    {
      *w++ = c;
    }

  while( --max_length && (c = getchar()) )
    {
      if( isalpha( c ) )
	{
	  *w++ = c;
	}
      else if( isspace( c ) || c == EOF)
	{
	  *w = '\0';
	  break;
	}
      else
	{
	  return 0;
	}
    }
  

  *w = '\0';


  return word[0];
}

================ OUTPUT =====================
[arnuld@[EMAIL PROTECTED]
 C]$ gcc -ansi -pedantic -Wall -Wextra test.c
[arnuld@[EMAIL PROTECTED]
 C]$ ./a.out 
like
---------->  like
this
---------->  this
lllllllllllllllpppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpppppppppppdddddddddddddddddddddddddd
---------->  lllllllllllllllpppppppppppppqq
---------->  qqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
---------->  qqqqqqqqqpppppppppppdddddddddd
---------->  dddddddddddddddd
[arnuld@[EMAIL PROTECTED]
 C]$ 






-- 
http://lispmachine.wordpress.com/
my email ID is @[EMAIL PROTECTED]
 the above blog.
just check the "About Myself" page :)




 25 Posts in Topic:
Reading input problem
arnuld <sunrise@[EMAIL  2008-05-07 11:30:57 
Re: Reading input problem
Ben Bacarisse <ben.use  2008-05-07 10:58:41 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-09 02:37:42 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-08 10:41:14 
Re: Reading input problem
CBFalconer <cbfalconer  2008-05-07 12:35:35 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-09 02:35:14 
Re: Reading input problem
CBFalconer <cbfalconer  2008-05-08 13:57:23 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-09 02:36:41 
Re: Reading input problem
Ian Collins <ian-news@  2008-05-08 17:00:03 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-08 10:39:36 
Re: Reading input problem
Ian Collins <ian-news@  2008-05-08 18:15:26 
Re: Reading input problem
Richard Heathfield <rj  2008-05-08 07:14:08 
Re: Reading input problem
Ian Collins <ian-news@  2008-05-08 17:03:05 
Re: Reading input problem
CBFalconer <cbfalconer  2008-05-08 13:59:58 
Re: Reading input problem
pete <pfiland@[EMAIL P  2008-05-08 05:24:35 
Re: Reading input problem
Ben Bacarisse <ben.use  2008-05-08 11:45:24 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-09 20:36:41 
Re: Reading input problem
jacob navia <jacob@[EM  2008-05-09 10:20:33 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-10 07:11:22 
Re: Reading input problem
jacob navia <jacob@[EM  2008-05-09 13:33:45 
Re: Reading input problem
Ben Bacarisse <ben.use  2008-05-08 11:54:31 
Re: Reading input problem
arnuld <sunrise@[EMAIL  2008-05-10 00:08:14 
Re: Reading input problem
Barry Schwarz <schwarz  2008-05-09 10:55:56 
Re: Reading input problem
Antoninus Twink <nospa  2008-05-09 13:50:58 
Re: Reading input problem
Eligiusz Narutowicz<el  2008-05-09 14:04:44 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Tue May 13 14:50:43 CDT 2008.