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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
#1

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

16.10.2011, 11:36. Просмотров 4603. Ответов 10
Метки нет (Все метки)

Здравствуйте.
Учу С++ по книге Дейтела
так вот там пример программы
Код
#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
помогите исправить чтобы программа работала)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 11:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос признак конца ввода (C++):

Задача, на признак конца ввода - C++
Помогите пожалуйста

С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений., - C++
нужно написать программку срочно(С++) ...О_опомогите пожалуйста) ВОТ УСЛОВИЕ: С клавиатуры вводятся целые числа. Признак конца...

Вводится последовательность символов. Признак конца ввода – точка. Посчитать количество символов не являющихся пробелами - C++
Порядок выполнения работы 1.Изучите теоретическое обоснование и проанализируйте приведенные выше примеры программ с циклами типа for,...

Не работает признак окончания ввода(признак-0) - C++
Признак окончания ввода 0; подскажите люди добрые что не так?) #include &lt;iostream&gt; #include&lt;stdio.h&gt; using namespace std; int...

Visual Studio 2015 признак конца файла - C++
Вот есть такой простейший кусок кода: int main() { vector&lt;double&gt; vec; double x; cout &lt;&lt; &quot;Введите числа: &quot;; while (cin &gt;&gt; x)...

дана последовательность действительных чисел а1 а2 а3. признак конца последовательности 999 - C++
дана последовательность действительных чисел а1 а2 а3. признак конца последовательности 999.определить: разность между наибольшем числом и...

10
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
16.10.2011, 12:17 #2
проверил на visual studio 10 все работает. единственное к main надо было int подписать.
0
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 12:26  [ТС] #3
Цитата Сообщение от LostCoast Посмотреть сообщение
проверил на visual studio 10 все работает. единственное к main надо было int подписать.
int тоже не помогает в решении проблемы(
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
16.10.2011, 12:31 #4
Цитата Сообщение от JL25A Посмотреть сообщение
не помогает в решении проблемы
C++
1
#include <cstdio>
1
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
16.10.2011, 12:33 #5
Попробуй добавить
C++
1
#include <cstdio>
или на худой конец в начале программы
C++
1
#define EOF (-1)
0
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 то выходит сообщение
Введена неправильная буквенная оценка. Введите новую оценку.
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.10.2011, 13:02 #7
C++
1
while (cin >> grade)
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
16.10.2011, 13:27 #8
Цитата Сообщение от JL25A Посмотреть сообщение
т.е если ввожу EOF то выходит сообщение
Каким образом вводишь? Чтобы в консоли ввести EOF нужно нажать комбинацию клавишь <Ctrl>+<Z> для винды и <Ctrl>+<D> для nix'ов.
1
JL25A
3 / 3 / 1
Регистрация: 06.08.2011
Сообщений: 25
16.10.2011, 13:45  [ТС] #9
Цитата Сообщение от kazak Посмотреть сообщение
Каким образом вводишь? Чтобы в консоли ввести EOF нужно нажать комбинацию клавишь <Ctrl>+<Z> для винды и <Ctrl>+<D> для nix'ов.
Все спасибо работает)) Как раз до этого пункта дошел
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,474
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, открываешь их. Тот, в котором нужное определинее, подключаешь.
1
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, открываешь их. Тот, в котором нужное определинее, подключаешь.
Я новичек еще( не понятно как делать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 14:15
Привет! Вот еще темы с ответами:

std::cin, eof не всегда принимается как признак конца файла - C++
std::string text; char ch = 0; while(!std::cin.get(ch).eof()){ text.append(1, ch); } Ввожу в консоль в Windows: &quot;^Z&quot;...

Ввести с клавиатуры несколько строк, преобразовать их к верхнему регистру. признак конца finish - C++
Ввести с клавиатуры несколько строк, преобразовать их к верхнему регистру. признаком конца ввода считать строку состоящую из слова finish.

Признак конц ввода (с клавиатуры) - C++
Здравствуйте, нужна помощь. начал решать одну задачу, а там: &quot;Всего последовательность состоит не более чем из 40 чисел....

Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @) - C++
Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @). помогите для...


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
16.10.2011, 14:15
Ответ Создать тему
Опции темы

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