Форум программистов, компьютерный форум CyberForum.ru

Количество слов в файле. С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Dragon.007
 Аватар для Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
27.12.2012, 19:37     Количество слов в файле. С++ #1
Здравствуйте. Требуется посчитать количество слов в файле. Искала по темам, но что ни делаю - выдаёт ошибки.
Пишу строковую переменную
string text - тже ошибка. Использую EOF - также ошибка.. Могли бы мне помочь?
Компилятор - Borland C++ 3.1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream.h>
#include <conio.h>
#include <stdio.h>
main ()
{ clrscr();
ifstream inf;
char name[10]; int str=0;
cout<<"Zadaite imya faila: ";
cin>>name;
inf.open(name,ios::in);
if (inf==0) cout<<"\n Fail ne naiden! \n";
if (inf.eof()==" ") str++;
cout<<str;
return (0);
}
Миниатюры
Количество слов в файле. С++  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 19:37     Количество слов в файле. С++
Посмотрите здесь:

Количество слов в файле! C++
C++ Определить количество слов в файле
Дан текст в файле. Подсчитать в нем количество слов, имеющих длину меньше заданного числа. C++
Дан текст, найти количество слов и количество слов, у которых первый и последний символ совпадают C++
C++ Работа с файлами (подсчитать количество слов в файле, содержащих нечетное количеством букв)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Learx
1032 / 839 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
27.12.2012, 19:42     Количество слов в файле. С++ #2
метод eof() возвращает логический результат.
C++
1
if (!inf.eof()) str++;
Dragon.007
 Аватар для Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
27.12.2012, 19:46  [ТС]     Количество слов в файле. С++ #3
просто мы толком это не проходили - я совсем не понимаю что там к чему можно ссылку на пример программы или где можно понятно и доступно прочесть об EOF либо каком нибудь другом способе, чтоб читал файл до конца.
Learx
1032 / 839 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
27.12.2012, 19:48     Количество слов в файле. С++ #4
1. метод eof() возвращает логический результат.
2. Вы не читаете файл вам надо считывать с него информацию. Для этого подойдет getline с указанным разделителем пробел. и подключите библиотеку string.h
C++
1
2
3
4
5
6
7
string s;
 
if (!inf.eof())
{
  getline(inf, s, ' ');
  str++;
}
Dragon.007
 Аватар для Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
27.12.2012, 19:53  [ТС]     Количество слов в файле. С++ #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <fstream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
main ()
{ clrscr();
ifstream inf;
char name[10]; int str=0;
cout<<"Zadaite imya faila: ";
cin>>name;
inf.open(name,ios::in);
if (inf==0) cout<<"\n Fail ne naiden! \n";
if (!inf.eof() )
{
getline (inf, s, " ");
str++;
}
cout<<str;
return (0);
}
может я снова делаю что-то не то?
Миниатюры
Количество слов в файле. С++  
Learx
1032 / 839 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
27.12.2012, 19:55     Количество слов в файле. С++ #6
Описание библиотек

Учебник

Добавлено через 1 минуту
Последний параметр getline - это символ а не строка, необходимо использовать ' а не ".
Dragon.007
 Аватар для Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
27.12.2012, 20:00  [ТС]     Количество слов в файле. С++ #7
Learx, спасибо..исправила. но ошибки всё равно те же...
Learx
1032 / 839 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
27.12.2012, 20:04     Количество слов в файле. С++ #8
Для ввода-вывода данных используется поток. Чтоб работать с файлом необходимо создать поток, привязанный к файлу:
C++
1
2
3
4
//Создание объекта-потока: 
ifstream inf;
//привязываем поток к файлу:
inf.open(name,ios::in);
Для файла существует курсор, как в ворде - позиция в файле.
По умолчанию она установлена на начало файла. При чтении из файла этот курсор смещается на количество считанных символов.
Файл заканчивается специальной меткой - конец файла и если дальше считывать файл, то будет ошибка, поэтому перед чтением необходимо проверить положение курсора.
Для этого используется фукция eof - она говорит true если достигнут конец файла и false если нет.
потому для прочтения файла используется алгоритм:
1. Проверка конца файла.
2. Если не конец файла читаем и п1.

C++
1
2
3
4
5
while(!inf.eof() )
{
getline (inf, s, " ");
str++;
}
Dragon.007
 Аватар для Dragon.007
3 / 3 / 0
Регистрация: 06.04.2012
Сообщений: 29
27.12.2012, 20:07  [ТС]     Количество слов в файле. С++ #9
Цитата Сообщение от Learx Посмотреть сообщение
Для файла существует курсор, как в ворде - позиция в файле.
По умолчанию она установлена на начало файла. При чтении из файла этот курсор смещается на количество считанных символов.
Файл заканчивается специальной меткой - конец файла и если дальше считывать файл, то будет ошибка, поэтому перед чтением необходимо проверить положение курсора.
Для этого используется фукция eof - она говорит true если достигнут конец файла и false если нет.
потому для прочтения файла используется алгоритм:
1. Проверка конца файла.
2. Если не конец файла читаем и п1.
спасибо большое! всё предельно ясно!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 09:18     Количество слов в файле. С++
Еще ссылки по теме:

C++ Посчитать количество слов во входном файле и записать его в результирующий
Подсчитать количество слов в текстовом файле C++
C++ Юнит-тесты: приложение, считающее количество слов с заданной буквой в текстовом файле через тестирование

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

Или воспользуйтесь поиском по форуму:
Greeezly
 Аватар для Greeezly
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
25.12.2013, 09:18     Количество слов в файле. С++ #10
Цитата Сообщение от Learx Посмотреть сообщение
Код C++
while(!inf.eof() )
{
getline (inf, s, " ");
str++;
}
Ваш код работает не корректно.
На скрине - первая строка - результат работа вашего кода.

txt file: ( ~ - пробелы)
Код
word1~~~~word2~word3~~~
Миниатюры
Количество слов в файле. С++  
Yandex
Объявления
25.12.2013, 09:18     Количество слов в файле. С++
Ответ Создать тему
Опции темы

Текущее время: 09:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru