![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
sswt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 22.9.2015 Репутация: нет Всего: нет |
Нужно у файле посчитать количество слов. Кажеться правильно сделал, но ответ не правильный. Где ошибка?
Это сообщение отредактировал(а) sswt - 7.10.2015, 22:40 |
|||
|
||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
А оно вообще работает? Это же бесконечный цикл из которого нет выхода. Попробуйте как-то так:
PS: если не работает, я не виноват ![]() Добавлено через 11 минут и 36 секунд Плюс здесь не учтены всякие знаки препинания, например тире, которое обромляется пробелами с двух сторон, но словом не является. Это сообщение отредактировал(а) baldman88 - 7.10.2015, 23:08 |
|||
|
||||
math64 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Здесь, как и в примере ТС, считается число непробельных символов. Нужно как-то так:
Если программируете на C без плюсов, вместо bool использется int (и 0 и 1 вместо false и true) или enum Bool { False, True }; Если хотите учесть знаки препинания, нужно добавить дополнительные if: " - " с пробелами вокруг не является словом, а "кто-то" - одно слово. |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Здесь, всё-таки, лучше int. Для char и виндовской кодировки, например, 'я' и EOF неразличимы ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
sswt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 22.9.2015 Репутация: нет Всего: нет |
math64, переделал, но так и не правильно работает, всегда о выводит((((
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
файл нужно закрывать после цикла, а не на каждой иттерации.
печатать colWord, для отладки, можете и внутри цикла. Но тогда лучше видеть все переменные:
И кстати, действия по if и else нужно поменять местами. Это сообщение отредактировал(а) math64 - 8.10.2015, 12:54 |
|||
|
||||
a0730 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 1.6.2008 Репутация: нет Всего: нет |
Компилил gcc, работает с UTF8.
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Логику подсчета слов не трогал, просто подсказал автору, где он сделал явно неправильно (посимвольное чтение до конца файла, вместо бесконечного цикла; закрытие файла только после полного прочтения, а не на каждой итерации цикла). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |