Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> считывание строк 
:(
    Опции темы
Doublefaced
Дата 11.12.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



программа имитирует работу командной строки, требуется чтобы программа считывала независимо от количества пробелов...
м.б. цифры не те...но вроде несколько раз перепроверял...или ф-ция коряво написана?
подскажите плз.

Код

 #include <iostream>
#include <cstring>
#include <windows.h>

using namespace std;

char ReturnValue[256];

char* rus_str( char* str )
{
  CharToOem( str, ReturnValue );
  return ReturnValue;
}

const int MAXIMUM_LENGTH=80;

int main ()
{


    int count1=1, count2=1, k=0, ;

    char str [MAXIMUM_LENGTH];
    char word1 [MAXIMUM_LENGTH], op , word2 [MAXIMUM_LENGTH];
    cout << rus_str ("работа с командной строкой\n");
    cout << rus_str (" наберите команду exit, если хотите закончить \n");


    while (true )
    { 
    cout << "> ";
    cin.getline (str, MAXIMUM_LENGTH);


    for (int i=0; str[i]!=' '; i++)
        word1 [i]=str[i];
    word1[i++]='\0';
    
    
    for ( count; char prob[k]=' '; count1++)
        k++;
    

    if (!(bool (strcmp (word1, "Exit")) && bool (strcmp (word1, "exit")))) break;
    cout << word1<<"\t"<< strlen(word1)<<"\n";

    op=str[strlen(word1)+count1];
    cout<<op<<"\n";


    while (32)
    count2++;

    for (int j=0; str [strlen(word1)+1+count1+count2+j]!='\0'; j++)
    word2[j]=str[strlen(word1)+1+count1+count2+j];
    word2[j++]='\0';
    cout << word2<<"\t"<< strlen(word2)<<"\n";


    switch (op)
    {
        case '+': cout<< rus_str ("Здесь должна быть функция, выполняющая сложение\n");
        break;
        case '-': cout<< rus_str ("Здесь должна быть функция, выполняющая вычетание\n");
        break;
        case '*': cout<< rus_str ("Здесь должна быть функция, выполняющая умножение\n");
        break;
        case '/': cout<< rus_str ("Здесь должна быть функция, выполняющая деление\n");
        break;
        default: cout<<op<<"\t"; cout <<rus_str ("нет такой функции\n");
    }
    }
    cout <<rus_str ("конец программы\n");
    return 0;
}

PM MAIL   Вверх
xvr
Дата 11.12.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Да уж, особенно порадовал цикл в строках 40-41, да и цикл в строках 51-52 тоже ничего  smile Совет - прежде, чем изливать свои мысли компилятору, постарайтесь их выразить так, что бы компилятор их понял, ибо он будет транслировать то, что программист написал, а не то, о чем он думал  smile 
PM MAIL   Вверх
Doublefaced
Дата 11.12.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да вроде все норм...
есть у кого заготовки? или хоть подскажите...просто перепробовал уже кучу вариантов...
PM MAIL   Вверх
mes
Дата 11.12.2008, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Doublefaced @  11.12.2008,  22:00 Найти цитируемый пост)
да вроде все норм...

смотрел только 40ю строку - 3 ошибки )
Цитата(Doublefaced @  11.12.2008,  15:14 Найти цитируемый пост)
  for ( count; char prob[k]=' '; count1++)

во второй секции цикла for должно быть условие продолжения цикла, а там что ?? (выделено жирным в цитате)
а почему в первой секции не проинициализирована переменная и ее отлично от переменной третей секции ?



Это сообщение отредактировал(а) mes - 11.12.2008, 22:09


--------------------
PM MAIL WWW   Вверх
Doublefaced
Дата 11.12.2008, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну хм...разве так нельзя условие записать?
условие...что пока катый член массива не станет пробелом...
если нельзя это условие так описать, то подскажите плз как.





PM MAIL   Вверх
mes
Дата 11.12.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Doublefaced @  11.12.2008,  22:49 Найти цитируемый пост)
ну хм...разве так нельзя условие записать?

условие равно записывается как  ==, а  = явл.  оператором присвоения.

Цитата(Doublefaced @  11.12.2008,  22:49 Найти цитируемый пост)
условие...что пока катый член массива не станет пробелом...

Цитата(Doublefaced @  11.12.2008,  15:14 Найти цитируемый пост)
  for ( count; char prob[k]=' '; count1++)
        k++;

интересно а где в цике такое действие, чтоб элементы масива становились нулями ??
т тому же условие неправильно сформулировано, в цикле проверятся только один элеммент, а условие касается состояния всего массива,
так что в связи с неполнотой задачи привожу только общий пример:

цикл записывается так ;
for (int i=0; i<size; ++i) // i меняется в диапазоне [0 .. size-1]  включительно




Это сообщение отредактировал(а) mes - 11.12.2008, 23:53


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




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


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

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