Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> eclipse+windows console, как считивать посимвольно из под конзоли 
:(
    Опции темы
newsl
Дата 1.11.2009, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



как читивать посимвольно из под windows-consol ? ->Eclipse
PM MAIL   Вверх
newsl
Дата 1.11.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



что никто низнает мине срочно надо я гооглил но так нeчево и ненашол 
PM MAIL   Вверх
Samotnik
Дата 1.11.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Для начала научитесь задавать вопросы, что значит "считывать из под windows консоли" ? 
Аргументы из командной строки ?  они лежат в массиве args[] 
Код

public static void main(String ... args)  // вот тут

Дайте хоть скриншот того, что нужно считать 

PM MAIL   Вверх
newsl
Дата 1.11.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



извени я новичок smile нет я имел виду если я задаю 2+3+4+6*6 то прога чтобы считывала 1 символ пока еи нескажут читаи 2 и так далие тоесть сперва считала 2 патом + патом опять 3 ... так как ето консолная програма ввожу я ето  в консолном окне args[]  мине ненадо мине нужна сама толко функция считивания по символу типа как в с++ cin>> в java  спомошю 
Scanner in=new Scanner(System.in);  такова сделать нелзя ибо  читает всю строку или если нет такои функции то хотябы функчия катороя помщает ету строку обратно в буфер чтобы можно было ешёраз считать


PM MAIL   Вверх
Samotnik
Дата 1.11.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Код

package test;

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;

public class Main {
    public static void main(String ... args) throws IOException{
           BufferedReader stdin = new BufferedReader
             (new InputStreamReader(System.in));
           String message;
           System.out.print ("Enter the message : ");
           System.out.flush();
           message = stdin.readLine();
           System.out.println("U entered : " + message);
    }
}



Это сообщение отредактировал(а) Samotnik - 1.11.2009, 15:05
PM MAIL   Вверх
newsl
Дата 1.11.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



нет извени ты меня наверное опять непонял ета фукнкция просто седает что было в буфере и выдает а мине надо так чтобы если я например напишу слово "ПРИВЕТ" то функция считала бы толко первую букву патом если я её ешё раз вызаву онабы считала 2 букуву и так до конца слова а тут та функция считивает полностю всё слово мине ето ненадо мине надо тока 1 букву за один раз типа парсера 
вот моя прога  


Код



import java.util.*;
import java.io.*;

public class calculator {
    


    static final int NAME=0, NUMBER=1, END=2,
    PLUS='+', MINUS='-', MUL='*', DIV='/',
    PRINT=';', ASSIGN='=', LP='(', RP=')', POW='^';


    static int  curr_tok=PRINT;
    static double number_value;
    static String string_value;
    static int no_of_errors=0;
    


    static Scanner cin=new Scanner(System.in);
    

    static double expr(boolean get)
    {
        
        System.out.println("expr");
        double left=term(get);

        for(;;)
            switch (curr_tok)
            {
            
            case PLUS:
                
                left+=term(true);
                
                break;
            case MINUS: 
                left-=term(true);
                break;

            default: return left;
            

            }
    }


    static double term (boolean get)
    {
        System.out.println("term");
        
        double left=prim(get);

        for(;;)
            switch (curr_tok){
                
            case MUL: 
                left *=prim(true);
                break;
            case DIV: 
                 double d=prim(true);
                
                    left/=d;
                    break;
                
                
                
            default :
                return left;
            }

    }


    static double prim (boolean get)
    {
        System.out.println("prim");
        
        if(get)
            get_token();

        switch (curr_tok){
            case NUMBER :
                {
                    double v=number_value;
                    System.out.println("number value"+number_value);
                    get_token();
                    return v;
                }
            

            case MINUS: 
                return -prim(true);

            case LP:
                {
                    double e=expr(true);
                    if(curr_tok!=RP)
                        return error(" ) erwartet");
                    get_token();
                    return e;
                }

            default:
                return error("primary erwartet");
        }

    }

    

    static  int get_token()
    {
        System.out.println("get_token");
        
        
        String token_string;
        char token_char;

        int i=0;
        token_string=cin.nextLine();/// -вот тут нужна та функция каторая читает тока 1 символ при каждом вызове продвигаяс на 1 символ длаше иначе прога неразберет всю строку -                             //---------------!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        
        token_char=token_string.charAt(i); 
        
        
        System.out.println("String:"+token_string);
        
        



        switch(token_char){
            case 0:
                return curr_tok=END;
            case ';' :
            case '*' :
            case '/' :
            case '+' :
            case '-' :
            case '(' :
            case ')' :
            case '=' :
            
                System.out.println("Token");
                int ch=(int)token_char;
                return curr_tok=ch;
            case '0': case '1': case '2': case '3': case '4': 
            case '5': case '6': case '7': case '8': case '9': 
            case '.': 
                
                number_value=Double.parseDouble(token_string);
                System.out.println("Number");
                return curr_tok=NUMBER;
                
                
            default: string_value=token_string;
            
            return curr_tok=NAME;

            
        }
        

    }



    static double error(  String  ERROR_STRING)
    {
        System.out.println("error");
        no_of_errors++;
        
        return 1;
    }


public static void main (String []argv)
    {

        
            while(true)
            {
                System.out.println("main");
                get_token();

                if(curr_tok==END)
                    break;
                
                
                System.out.println("RESULT"+expr(false));
            }
    }





}




Это сообщение отредактировал(а) newsl - 1.11.2009, 15:39
PM MAIL   Вверх
Samotnik
Дата 1.11.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Цитата(newsl @  1.11.2009,  15:29 Найти цитируемый пост)
нет извени ты меня наверное опять непонял

конечно не понял, ты посмотри как ты пишешь ! 
А задача твоя элементарная, возьми мой код - вынеси его в отдельный метод, только на печать выводи (или return ставь) не все слово, а только по индексу  message.charAt(index_тот_который_ты_передаш_в_метод)
Сорри код написать немогу - нуна бежать,  если не понятно, то вечером напишу
PM MAIL   Вверх
newsl
Дата 1.11.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



Цитата(Samotnik @ 1.11.2009,  16:10)
Цитата(newsl @  1.11.2009,  15:29 Найти цитируемый пост)
нет извени ты меня наверное опять непонял

конечно не понял, ты посмотри как ты пишешь ! 
А задача твоя элементарная, возьми мой код - вынеси его в отдельный метод, только на печать выводи (или return ставь) не все слово, а только по индексу  message.charAt(index_тот_который_ты_передаш_в_метод)
Сорри код написать немогу - нуна бежать,  если не понятно, то вечером напишу

думаю что так непоидет я чтот типа етова уже пробовал сделать тока непашело ну ты напиши вечерком то што ты имел ввиду может я ошибаюсь smile
спасибо тебе кстати за помощ smile ;)
PM MAIL   Вверх
newsl
Дата 1.11.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



вот решение но блин чето както убого вигледит да и если нажмеш ок то всё собется чето както тупо нету ченит другово по елегантнеи? да попроше?, тер вижу почему с++ лудше жава какоито нетакои язык :-(



Код

public static  int i=0; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
public static String token_string="0"; //!!!!!!!!!!!!!!!!!!!!!!!!
    
static  int get_token()
    {
        System.out.println("get_token");
        
        
        
        char token_char;

        
        if(i==0)
        token_string=cin.nextLine();
        token_char=token_string.charAt(i);
        
        i++;
        
        
        
        
        System.out.println("String:"+token_string);
        
        



        switch(token_char){
            case 0:
                return curr_tok=END;
            case ';' :
            case '*' :
            case '/' :
            case '+' :
            case '-' :
            case '(' :
            case ')' :
            case '=' :
            
                System.out.println("Token");
                int ch=(int)token_char;
                if(ch=='=')//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                    i=0;
                return curr_tok=ch;
            case '0': case '1': case '2': case '3': case '4': 
            case '5': case '6': case '7': case '8': case '9': 
            case '.': 
                
            
                
                number_value=(int)(token_char);
                number_value-=48;
                System.out.println("Number");
                return curr_tok=NUMBER;
                
                
            default: string_value=token_string;
            
            return curr_tok=NAME;

            
        }
        

    }




Добавлено через 9 минут и 10 секунд
не ша проверил смотрю когда вводиш 22 ну числа болше 9 то всё непонимает кароче неподходит нада чста такая функция что считивает smile иначе я невижу решения 
PM MAIL   Вверх
Samotnik
Дата 2.11.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



newsl,  я ничего не понимаю, что вам нужно, пишите пажалста нормально по - русский. 
PM MAIL   Вверх
newsl
Дата 3.11.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.11.2009

Репутация: нет
Всего: нет



я ешё на досуге по разбираю сам всё потом напишу гдето в четвег ибо шас нету времени спасибо что помагаеш
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.