why does the following program takes only single digit input ?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • learner12
    New Member
    • Feb 2014
    • 1

    #1

    why does the following program takes only single digit input ?

    Code:
    import java.io.*;
    class D31
    {
    	public static void main (String args[]) throws IOException
    	{
    		char c[] = new char[20];
    		char d[] = new char[20];
    		char temp;
    		char i,j;
    
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		BufferedReader cr = new BufferedReader(new InputStreamReader(System.in));
    
    		System.out.println("enter 5 elements");
    
    		for(i=0;i<5;i++)
    		{
    			c[i] = (char)  br.read();
    			System.out.println(c[i]);
    		}
    		
    		System.out.println("enter 5 elements");
    	
    		for( i=0;i<5;i++)
    		{
    			d[i] = (char)  cr.read();
    			System.out.println(d[i]);
    		}
    
    		for( j=0;j<5;j++)
    		{
    			c[i]=d[j];
    			i++;
    		}	
    
    
    		System.out.println("sorted array");
    
    		for(i=0; i<10; i++)
    		{
    			for(j=i; j< 9; j++)
            		{
    				if(c[i]< c[ j+1])
    	        			{
    						temp=c[i];
    		        			c[i]=c[ j+1];
    		        			c[ j+1]=temp;
    	        			}
     		       }
    		}
    
    
    
    		for(i=0;i<10;i++)
    		{
    			System.out.print("\t"+c[i]);	
    		}
    
    	}
    
    }
  • Nepomuk
    Recognized Expert Specialist
    • Aug 2007
    • 3111

    #2
    Hi learner12 and welcome to bytes.com!

    The BufferdReader.r ead() function only reads one character, so you will only get one digit of your input. You could use the BufferedReader. readLine() method if the whole line will do; for more advanced stuff, use a Scanner rather than a BufferedReader. That offers many useful methods for reading data.

    Comment

    Working...