Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 1
1

Подсчет символов, используя getchar и EOF

01.09.2019, 22:38. Показов 1326. Ответов 3
Метки нет (Все метки)

В книге по C (Керниган, Ритчи) приводится пример программы, считающей кол-во символов введенных с потока.

C
1
2
3
4
5
6
7
8
9
10
#include ‹stdio.h›
/* подсчет вводимых символов; 1-я версия */
main()
{    
    long nc;
    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%ld\n", nc);
}
Логика программы проста и думаю работает она верна, но у меня не получается проверить. Компилю, запускаю, пишу текст, нажимаю Enter - ничего, программа продолжает принимать на вход данные.

Как и что мне сделать, чтобы прога работала?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Подсчет символов, используя getchar и EOF  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2019, 22:38
Ответы с готовыми решениями:

EOF и getchar
Добрый вечер, у меня есть следующий код: #include <locale.h> #include <stdio.h> #include...

Getchar и putchar EOF
Подскажите что за символ такой EOF? Чисто догадываясь это 0, но не работает. #include <stdio.h> ...

Getchar() возвращает EOF сразу после чтения первого символа строки
#include <fstream> #include <iostream> #include <cstdlib> #include <vector> #include <conio.h>...

Прочитать символы из файла, используя eof() (программа работает не так, как ожидается)
Здравствуйте, мне нужно прочитать символы из файла(желательно с пробелами). Использую eof(), но...

3
812 / 500 / 210
Регистрация: 19.01.2019
Сообщений: 1,196
01.09.2019, 23:12 2
Ввод не прекращается по enter, '\n' тоже символ. Прервать можно ctrl + z.
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
02.09.2019, 00:29 3
Если хотите, чтобы программа переставала принимать данные, после нажатия кнопки enter, то используйте функцию getline
0
Фрилансер
3687 / 2057 / 566
Регистрация: 31.05.2009
Сообщений: 6,683
02.09.2019, 01:28 4
Лучший ответ Сообщение было отмечено zss как решение

Решение

Цитата Сообщение от nalbe666 Посмотреть сообщение
Прервать можно ctrl + z
Это под Windows ввод останавливается по Ctrl-Z
ТС явно работает под Linux, там надо нажимать Ctrl-D

А Ctrl-Z там делает совсем другое:
Комбинация клавиш Ctrl + Z посылает процессу сигнал, который приказывает ему остановиться. Это значит, что процесс остается в системе, но как бы замораживается. Само собой разумеется он уходит в бэкграунд (background) – в фоновый режим. С помощью команды bg его можно снова запустить, оставив при этом в фоновом режиме. Команда fg не только возобновляет ранее приостановленный процесс, но и выводит его из фона на передний план.
Что, собственно, на скрине и видно
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2019, 01:28

Подсчет символов UTF-8. Считывание пробельных символов
Написал программу считывания файла с кодировкой UTF-8. Но она не считывает пробельные символы....

Назначение функций getchar и костанты EOF
Помогите чуть плис что делает getchar и EOF ато я програму уже 2 день не могу написать , чуствую...

При вводе данных цикл по поиску EOF в Getchar не останавливается
Здраствуйте, вот такая проблема: #include <stdio.h> main() { int nc=0; while(getchar()...

Проверьте, что выражение getchar() != EOF действительно равно 1 или 0
Я сделал это упражнение кратким: #include <stdio.h> int main() { int c; c = getchar ()...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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