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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2015, 22:38   #1
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию У файле нужно посчитать количество слов

Нужно у файле посчитать количество слов. Кажеться правильно сделал, но ответ не правильный. Где ошибка?
Код:
void Ex()
{
    const char* fileName = "D:\\file8.txt";
    FILE* fileInput = fopen(fileName, "r");
    if (fileInput == nullptr)
        return;
    while (true)
    {
        char symbol;
        int colWord = 0;
        if (fscanf(fileInput, "%d", &symbol) != EOF)
        {
                if ((symbol == '\n') || (symbol == ' ') || (symbol == '\t'))
                ++colWord;
        }
            fclose(fileInput);
            printf("colWord = %d", colWord);
    }
}
int main()
{
    Ex();
    return 0;
}

Последний раз редактировалось vova_makr; 07.10.2015 в 22:40.
vova_makr вне форума Ответить с цитированием
Старый 08.10.2015, 09:09   #2
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию

Цитата:
Сообщение от BlackJim Посмотреть сообщение
Понимаешь, здесь могут быть ошибки касащего насчет symbol == ' '
Мы не знаем там один или больше их подряд идет.
Распознаешь буквы и знаки препинания, потом пропуск как только снова встретишь букву с которой начинается слово, добаляешь плюс один.
Результат всегда выводит colWord = 0
vova_makr вне форума Ответить с цитированием
Старый 08.10.2015, 09:20   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Забавно... Я всегда думал что хватит и такого:
Код:
	char s[255];
	FILE *f=fopen("слова слова.txt","r");
	while (!feof(f)) {
		fscanf(f,"%s ",&s);

	}
	fclose(f);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2015, 15:56   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

мы на КАЖДУЮ строчку делаем
Цитата:
Код:
int colWord = 0;
в том числе и для пустой последней (та где EOF и нет ни единого слова)
вот и получаем
Цитата:
Результат всегда выводит colWord = 0
Перенесите указанную строку ВЫШЕ (до цикла!!!)
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество слов в тексте Kontinent Помощь студентам 0 27.06.2014 20:20
посчитать количество всех слов,слов-маркеров и процент слов-маркеров ksenya91 Помощь студентам 9 09.01.2013 07:00
Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является разделителем слов. Вывести рез-ть на экра Газимов Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 02.03.2012 15:58
Посчитать количество слов OPEJI Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2011 17:58
Посчитать количество символов в файле Sabyr Помощь студентам 1 31.05.2009 18:50