Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2013, 02:44   #1
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию Калькулятор из книги Страуструпа.

Доброго времени суток, господа и дамы программисты. Книга старая, visual C++ новый, и в IDE давно уже нет заголовочного файла <stream.h>.
В <stream.h> лежит переменная ws неизвестного типа, которая "используется только как приемник ненужных пробелов"(цитата из Страуструпа). Как это обойти?
Спасибо за внимание.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 23.11.2013, 13:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Чет я ничео не понял )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 18:54   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Страуструп написал книгу в 1990 году. Последнее переиздание было в 2000. А вот у меня VS 2012. При компиляции выдает сообщение об ошибке, что нет заголовочного файла <stream.h>, в котором декларирована переменная ws. Вот отрывок кода из калькулятора:
Код:
token_value get_token() 
{ 
 char  ch; 
  do {    // пропускает обобщенные пробелы за исключением '
\n' 
    if(!cin.get(ch)) return curr_tok = END; 
  } while (ch!='\n' && isspace(ch)); 
  switch (ch) { 
  case  ';': 
  case  '\n': 
   cin  >>  ws;  // пропуск обобщенного пробела
 
   return  curr_tok=PRINT; 
  case  '*': 
  case  '/': 
  case  '+': 
  case  '-': 
  case  '(': 
  case  ')': 
  case  '=': 
   return  curr_tok=token_value(ch); 
    case '0': case '1': case '2': case '3': case '4': 
    case '5': case '6': case '7': case '8': case '9': 
  case  '.': 
   cin.putback(ch); 
   cin  >>  number_value; 
   return  curr_tok=NUMBER; 
  default:  //  NAME,  NAME=  или
 ошибка
 
   if  (isalpha(ch))  { 
    char*  p  =  name_string; 
    *p++  =  ch; 
        while (cin.get(ch) && isalnum(ch)) *p++ = ch; 
    cin.putback(ch); 
    *p  =  0; 
    return  curr_tok=NAME; 
   }  
   error("недопустимая лексема");
 
   return  curr_tok=PRINT; 
 } 
}
Вот я и не знаю, есть ли другие методы пропуска обобщенного пробела. Вообще можно и без него компилить, но хочется узнать, есть ли другие стандартные методы пропуска пробела.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 23.11.2013, 18:57   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

http://elvis.rowan.edu/studio11_doc/...CCios/stream.h
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 23.11.2013, 19:14   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Что интересно, я пытался найти исходник в инете. Плохо искал, ох плохо. Благодарю.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор в книге Страуструпа grumpy.user Общие вопросы C/C++ 1 28.10.2013 15:58
Задача из Страуструпа 11.14.20. I_I_I Общие вопросы C/C++ 9 24.07.2013 18:08
калькулятор страуструпа.Добавление структур KirillKirill Помощь студентам 1 29.10.2012 14:14
Страуструпа или Лафоре EvWinApi Общие вопросы C/C++ 1 27.03.2012 08:41
Калькулятор Страуструпа Эйнж Общие вопросы C/C++ 1 01.04.2009 00:44