Форум программистов, компьютерный форум CyberForum.ru

признак конца ввода - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 11:36     признак конца ввода #1
Здравствуйте.
Учу С++ по книге Дейтела
так вот там пример программы
Код
#include <iostream>
#include <locale.h>
using namespace std;

main()
{
  setlocale(LC_ALL, "Russian");
  int grade;
  int aCount = 0, bCount = 0, cCount = 0,
      dCount = 0, fCount = 0;

  cout << "Введите буквенную оценку." << endl
       << "Введите символ EOF по окончании ввода." << endl;

  while ((grade = cin.get()) != EOF )
   {
       switch (grade)
       {
           case 'A': case 'a':
             ++aCount;
             break;
           case 'B': case 'b':
             ++bCount;
             break;
           case 'C': case 'c':
             ++cCount;
             break;
           case 'D': case 'd':
             ++dCount;
             break;
           case 'F': case 'f':
             ++fCount;
             break;
           case '\n': case ' ':
             break;

          default:
           cout << "Введена неправильная буквенная оценка."
                << " Введите новую оценку." << endl;
       }
   }

   cout << endl << "Количество различных оценок:"
        << endl << "A: " << aCount << endl << "B: " << bCount
        << endl << "C: " << cCount << endl << "D: " << dCount
        << endl << "F: " << fCount << endl;
  return 0;
}
Пользуюсь Code::blocks 10.05
вин 7
Ошибка выглядит так
error: 'EOF' was not declared in this scope
помогите исправить чтобы программа работала)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 11:36     признак конца ввода
Посмотрите здесь:

С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений., C++
C++ признак конца файла
C++ std::cin, eof не всегда принимается как признак конца файла
Не работает признак окончания ввода(признак-0) C++
C++ Esc как символ конца ввода
Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @) C++
C++ Динамический одномерный массив, запоминать до конца ввода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
16.10.2011, 12:17     признак конца ввода #2
проверил на visual studio 10 все работает. единственное к main надо было int подписать.
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 12:26  [ТС]     признак конца ввода #3
Цитата Сообщение от LostCoast Посмотреть сообщение
проверил на visual studio 10 все работает. единственное к main надо было int подписать.
int тоже не помогает в решении проблемы(
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
16.10.2011, 12:31     признак конца ввода #4
Цитата Сообщение от JL25A Посмотреть сообщение
не помогает в решении проблемы
C++
1
#include <cstdio>
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
16.10.2011, 12:33     признак конца ввода #5
Попробуй добавить
C++
1
#include <cstdio>
или на худой конец в начале программы
C++
1
#define EOF (-1)
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 12:46  [ТС]     признак конца ввода #6
Цитата Сообщение от kazak Посмотреть сообщение
Попробуй добавить
C++
1
#include <cstdio>
или на худой конец в начале программы
C++
1
#define EOF (-1)
копилируется без ошибки, но с цикла не выходит
т.е если ввожу EOF то выходит сообщение
Введена неправильная буквенная оценка. Введите новую оценку.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.10.2011, 13:02     признак конца ввода #7
C++
1
while (cin >> grade)
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
16.10.2011, 13:27     признак конца ввода #8
Цитата Сообщение от JL25A Посмотреть сообщение
т.е если ввожу EOF то выходит сообщение
Каким образом вводишь? Чтобы в консоли ввести EOF нужно нажать комбинацию клавишь <Ctrl>+<Z> для винды и <Ctrl>+<D> для nix'ов.
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 13:45  [ТС]     признак конца ввода #9
Цитата Сообщение от kazak Посмотреть сообщение
Каким образом вводишь? Чтобы в консоли ввести EOF нужно нажать комбинацию клавишь <Ctrl>+<Z> для винды и <Ctrl>+<D> для nix'ов.
Все спасибо работает)) Как раз до этого пункта дошел
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,302
16.10.2011, 13:52     признак конца ввода #10
Если не знаешь где определён идентификатор, делаешь так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
К примеру, если мы находимся в папке, где есть несколько файлов с расширением .h (тех же инклудов), то поможт такая команда
 
FIND "EOF" *.h > zzzz.txt
 
результаты будут в файле zzzztxt
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
Эта команда
FINDSTR /S /I ResumeThread *.*> zzzz.txt
будет искать строку stroka во всех файлах каталога и подкаталогов, рекурсивно,(/S) не учитывая регистр (/I),
Но эТо делать не рекомендуется и бо  она и в бинарниках тоже будет искать, а тогда zzz.txt окажется юникодовым
 
Вот так лучше
FINDSTR /S /I ResumeThread *cpp*> zzzz.txt
...то же самое, но во всех файлах *cpp
Потом открывашь файл-результат zzzz.txt, смотришь файлы, в которых есть EOF, открываешь их. Тот, в котором нужное определинее, подключаешь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 14:15     признак конца ввода
Еще ссылки по теме:

C++ дана последовательность действительных чисел а1 а2 а3. признак конца последовательности 999
C++ Вводится последовательность символов. Признак конца ввода – точка. Посчитать количество символов не являющихся пробелами
C++ Признак конц ввода (с клавиатуры)
Задача, на признак конца ввода C++
C++ Visual Studio 2015 признак конца файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 14:15  [ТС]     признак конца ввода #11
Цитата Сообщение от kravam Посмотреть сообщение
Если не знаешь где определён идентификатор, делаешь так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
К примеру, если мы находимся в папке, где есть несколько файлов с расширением .h (тех же инклудов), то поможт такая команда
 
FIND "EOF" *.h > zzzz.txt
 
результаты будут в файле zzzztxt
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
Эта команда
FINDSTR /S /I ResumeThread *.*> zzzz.txt
будет искать строку stroka во всех файлах каталога и подкаталогов, рекурсивно,(/S) не учитывая регистр (/I),
Но эТо делать не рекомендуется и бо  она и в бинарниках тоже будет искать, а тогда zzz.txt окажется юникодовым
 
Вот так лучше
FINDSTR /S /I ResumeThread *cpp*> zzzz.txt
...то же самое, но во всех файлах *cpp
Потом открывашь файл-результат zzzz.txt, смотришь файлы, в которых есть EOF, открываешь их. Тот, в котором нужное определинее, подключаешь.
Я новичек еще( не понятно как делать
Yandex
Объявления
16.10.2011, 14:15     признак конца ввода
Ответ Создать тему
Опции темы

Текущее время: 13:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru