Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/146: Рейтинг темы: голосов - 146, средняя оценка - 4.58
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106

Как ввести EOF с клавиатуры?

07.08.2011, 13:54. Показов 28691. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как ввести EOF c клавиатуры ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2011, 13:54
Ответы с готовыми решениями:

Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры.
Привет всем. Как ввести двумерный массив с клавиатуры? Его размерность нужно задавать с клавиатуры.

Как ввести на клавиатуре EOF
Консольное приложение. Написан цикл по подсчету количества строк, которые вводятся с клавиатуры. Как ввести признак EOF на клавиатуре. ...

Ввод EOF с клавиатуры
int c while((c=getchar())!=EOF) {операторы} программа будет выполнятся до окончания потока или символа конца строки. Enter - переводит...

15
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,307
07.08.2011, 13:57
<Ctrl>+<Z> для Windows
<Ctrl>+<D> для Unix
0
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
07.08.2011, 14:17  [ТС]
C++
1
2
3
4
5
6
while(!EOF)
    {
        cin>>line[i];
        i++;
        size++;
    }
Почему в эта прога не ждет пока я line[i] с клавиатуры ввиду, а сразу закрывается ?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.08.2011, 14:21
C++
1
2
3
4
while(std::cin >> line[i++])
{
    size++;
}
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
07.08.2011, 14:25
Цитата Сообщение от Noname2512 Посмотреть сообщение
Почему в эта прога не ждет пока я line[i] с клавиатуры ввиду, а сразу закрывается ?
А ты посмотри, как у тебя в компиляторе EOF задефайнен (всмысле, что он значит), сразу поймешь
C++
1
while(!EOF)
0
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
07.08.2011, 14:33  [ТС]
а он так поймет когда выходить надо ?
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
07.08.2011, 14:37
C++
1
2
3
4
5
6
do
        {
                cin>>line[i];
                i++;
                size++;
        }while(line[i-1]!=EOF)
по идеи так правильнее
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.08.2011, 14:38
Цитата Сообщение от Noname2512 Посмотреть сообщение
а он так поймет когда выходить надо ?
если нажмешь
Цитата Сообщение от kazak Посмотреть сообщение
<Ctrl>+<Z> для Windows
<Ctrl>+<D> для Unix
то поймет
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
08.08.2011, 05:27
Цитата Сообщение от silentnuke
по идеи так правильнее
если работаешь с EOF, то там должна быть функция, которая возвращает EOF
сам EOF ты прочитать из файла не можешь, потому что это константа, которая возвращается функцией
EOF может возвращаться и в случае ошибки

вот пример
C
1
2
3
4
5
6
    int c;
    FILE *ifp;
 
...
 
    c = getc(ifp);
если в с запишется EOF, то это ещё не значит, что файл закончился
дальше нужно применить ferror() для потока ifp, чтобы узнать, что произошло

а касаемо топика
C++
1
cin>>line[i];
это выражение вообще EOF не возвращает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    ifstream in;
    char c = 'n';
    
    cout << c << ' ' << (in >> c) << endl;
    cout << c << ' ' << (in >> c) << endl;
    cout << c << ' ' << (in >> c) << endl;
    
    in.open("file.txt");
    cout << c << ' ' << (in >> c) << endl;
    cout << c << ' ' << (in >> c) << endl;
    cout << c << ' ' << (in >> c) << endl;
    
    return 0;
}
Code
1
2
3
4
5
6
7
8
[guest@localhost tests]$ ./t
n 0
n 0
n 0
a 0xbfea69c4
d 0xbfea69c4
f 0xbfea69c4
[guest@localhost tests]$
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
08.08.2011, 08:52
Цитата Сообщение от accept Посмотреть сообщение
а касаемо топика
C++
1
 cin>>line[i];
это выражение вообще EOF не возвращает
Но оно принимает значение false в случае считывания EOF, в случае считывания символа(не цифры) в int (или любой другой тип, подразумевающий хранение чисел), и при прочих ошибочных ситуациях.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
08.08.2011, 09:15
Цитата Сообщение от Kastaneda Посмотреть сообщение
Но оно принимает значение false в случае считывания EOF, в случае считывания символа(не цифры) в int (или любой другой тип, подразумевающий хранение чисел), и при прочих ошибочных ситуациях.
Не...
Для стримов перегружен оператор void*, который возвращает нуль, если стоят флаги failbit или badbit. Иначе ненулевое значение.
http://www.cplusplus.com/refer... or_voidpt/
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
08.08.2011, 09:18
Цитата Сообщение от Kastaneda
Но оно принимает значение false в случае считывания EOF
никакого считывания EOF нет
в потоке заканчиваются символы и системный вызов сообщает об этом
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
08.08.2011, 09:21
Цитата Сообщение от diagon Посмотреть сообщение
Для стримов перегружен оператор void*, который возвращает нуль, если стоят флаги failbit или badbit.
Я написал тоже самое, не вдаваясь в подробности)

Цитата Сообщение от accept Посмотреть сообщение
никакого считывания EOF нет
в потоке заканчиваются символы и системный вызов сообщает об этом
Помнится была тема, что-то типа "существует ли EOF", вобщем фразу "считывает EOF" в данном контексте можно считать условной
0
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
08.08.2011, 11:22
Будет полезно: https://www.cyberforum.ru/cpp-... 38868.html
0
 Аватар для Mayonez
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
08.08.2011, 20:26
Цитата Сообщение от Noname2512 Посмотреть сообщение
C
1
2
3
4
5
6
while(!EOF)
 {
 cin>>line[i];
 i++;
 size++;
 }
C++
1
while(!cin.eof())
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.08.2011, 01:57
Цитата Сообщение от Mayonez
C++
1
while(!cin.eof())
это неправильно
см https://www.cyberforum.ru/post1889839.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2011, 01:57
Помогаю со студенческими работами здесь

Как ввести с клавиатуры IP?
Здравствуйте! Подскажите пожалуйста. не могу сообразить, как ввести с клавы ip адрес в формате &quot;192.168.1.1&quot; и что бы каждый...

Ввести с клавиатуры строку. Ввести с клавиатуры коротенькую строку-шаблон. Найти шаблон во введенной строке.
Помогите пожалуйста написать программу) Очень буду благодарен! Ввести с клавиатуры строку. Ввести с клавиатуры коротенькую строку-...

Как ввести строку с клавиатуры?
Как в Си можно ввести строку с клавиатуры? Добавлено через 17 минут 22 секунды #include &lt;string.h&gt; #include &lt;stdio.h&gt; ...

Как ввести данные с клавиатуры
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int sum(int m, int n) { int i,k1=0,k2=0,s=0; for(i=0; i&lt;n; i++) ...

Как ввести значения с клавиатуры?
Как правильно ввести значения с клавиатуры чтобы использовать их в классе? Когда просто присваиваю значения переменным в коде все...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru