![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Lady000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 29.10.2011 Репутация: нет Всего: нет |
написать программу ,которая считывает текст из файла и выводит его на экран,после каждого предложения добавляя,сколько раз встретилось в нём введенное с клавиатуры слово
|
|||
|
||||
Lady000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 29.10.2011 Репутация: нет Всего: нет |
#include <iostream>
#include <fstream> #include <string> using namespace std; static const char END_OF_SENTENCE='.'; static const char* FILE_NAME="word.txt"; bool isWordDelimiter(char ch) { if (ch==' ' || ch=='.' || ch==',' || ch==':' || ch=='!' ) return true; else return false; } // Функция печатает количество слов in_word в предложении in_sentence. void printSentence(const string& in_word, const string& in_sentence) { // Количество слов int count=0; // Позиция в строке (для поиска) size_t str_position=0; // Пока есть слово в строке while ((str_position=in_sentence.find(in_word,str_position))!=string::npos) { bool beginOk=false; bool endOk=false; if (str_position==0) beginOk=true; else { beginOk=isWordDelimiter(in_sentence[str_position-1]); } if ((str_position+in_word.length())==in_sentence.length()) endOk=true; else { endOk=isWordDelimiter(in_sentence[str_position+in_word.length()]); } // Увеличиваем счетчик слов. if (endOk && beginOk) ++count; // Увеличиваем позицию для поиска. str_position+=in_word.length(); } // Выводим предложение, и количество слов. cout << in_sentence << " " << count << endl; } int main() { // Просим ввести слово. cout << "Enter the word, please:" << endl; string word; cin >> word; ifstream fin(FILE_NAME, ios::in); if (!fin) { cout << "Can't open file: " << FILE_NAME << endl; return 1;} char ch; string currentSentence; while (fin.get(ch)) { if (ch!=END_OF_SENTENCE) { // Если это не конец предложения, то читаем дальше. currentSentence.push_back(ch); } else { // Если конец предложения printSentence(word,currentSentence); currentSentence.clear(); } } fin.close(); return 0; } Вот код программы,запускаю ввожу слово,она у меня вылетает.....подскажите,в чём дело??? |
|||
|
||||
t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Lady000, а с чего вы решили что она вылетает? Она просто завершается. Для того чтобы увидеть результат поставьте в конце задержку. Ну хотя бы так:
-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
Lady000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 29.10.2011 Репутация: нет Всего: нет |
у меня стоит Dev-C++,запускаю программу,ввожу слово,она у меня вылетает почему-то(
|
|||
|
||||
t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Я тоже использую в основном gcc.
Вот бинарники созданные компиляторами GNU GCC (g++) и Digital Mars (dmc) Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
Lady000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 29.10.2011 Репутация: нет Всего: нет |
спасибо!!!!!
ещё хотела спросить,как можно записать эту программу не используя функции |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |