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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 11:47   #1
Unknown_Object
 
Аватар для Unknown_Object
 
Регистрация: 18.07.2009
Сообщений: 9
Сообщение C - Подсчёт символов

Добрый день,

В общем, поступил в ВУЗ, узнал что на первом курсе у меня будет С. Только что начал осваивать. Написал очень банальную програму для подсчёта символов и не могу понять причину неправильной роботы. Как я понимаю - EOF - числовая константа, которая равна -1. При прохождении цикла вплоть до последнего символа, в конце getchar() должен выдавать именно -1? Просто у меня почему-то никак не хочет выполняться выход из цикла... Тем более что даже если при вводе символов в конце ввести 'Ctrl+Z', то в всё-равно выход не происходит, он случается если только в пустую строку ввести 'Ctrl+Z'.

Код:
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	int count;

	for (count = 0; getchar() != EOF; ++count)
		;
	printf("%d\n", count);

}
Liverpool FC supporter.

Последний раз редактировалось Unknown_Object; 29.06.2010 в 12:38.
Unknown_Object вне форума Ответить с цитированием
Старый 29.06.2010, 12:37   #2
Ol'ga_new
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 125
По умолчанию

В Си функция EOF имеет значение 1, если позиция = концу файла, -1,если возникла ошибка, 0 - в противном случае.
Ol'ga_new вне форума Ответить с цитированием
Старый 29.06.2010, 12:43   #3
Unknown_Object
 
Аватар для Unknown_Object
 
Регистрация: 18.07.2009
Сообщений: 9
По умолчанию

Я пишу под студией, там в stdio.h #define EOF (-1) указан как -1 всё-таки?
Существует ли ещё какой-нибудь способ выхода из цикла после проверки последнего символа в строке?

Всё, спасибо, затупил, при чтении с файла работает нормально. При чтении из потока стоит использовать '\n'...
Liverpool FC supporter.

Последний раз редактировалось Stilet; 29.06.2010 в 13:31.
Unknown_Object вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчёт слов neBu4kaMaXiM Помощь студентам 2 30.03.2010 10:00
подсчёт слов neBu4kaMaXiM Фриланс 13 18.03.2010 18:11
подсчёт символов с в строке Proger_1 Общие вопросы C/C++ 10 13.03.2010 20:42
Подсчёт трафика Альберт Работа с сетью в Delphi 2 10.09.2007 11:35