![]() |
|
Модераторы: bsa |
![]()
|
|
| pdiman58 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 1.10.2009 Репутация: нет Всего: нет |
Задание таково:
"Написать программу на языке C++ чересстрочного слияния двух текстовых файлов с удалением в каждой строке слов в которых встречаюстя цифры". Моя прога работает, но с небольшой погрешностью она удаляет не все слово, а только предшествующую цифре часть слова и саму цифру.. Код:
вот мой код
Пожалуйста помогите поправить данную проблемку.. |
||||
|
|||||
| Веталька |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 338 Регистрация: 2.11.2008 Репутация: нет Всего: 6 |
удаляй символы слова пока не дойдешь до пробела (==)
Это сообщение отредактировал(а) Веталька - 11.2.2010, 23:53 -------------------- Ради зачета студент идет на все, даже на лекции........................ |
|||
|
||||
| Neox_GeForce |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 14.11.2007 Где: Украина Репутация: нет Всего: нет |
вижу ошибку
постав
-------------------- ![]() Челябинские программисты настолько суровы, что обходятся без компиляторов. Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска. |
||||
|
|||||
| pdiman58 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 1.10.2009 Репутация: нет Всего: нет |
не помогло.. теперь вообще ничего не удаляется.. остаются слова с цифрами.. |
||||||
|
|||||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
pdiman58, воспользуйся поиском. Такое задание было на этом форуме уже несколько раз!
|
|||
|
||||
| pdiman58 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 1.10.2009 Репутация: нет Всего: нет |
я пользовался поиском..
оттуда и почерпнул многое.. но вот как сделать чтобы удалялось все слово не понял.. если пробовать прибавлять цифарки в строчках beg+1 end+1 то получается как бы фиксированная величина.. а если в слове после цифры будет больше букв чем в заданной величине они все равно остануться.. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Понятия язык С++ и компилятор BC++ 3.1 мало совместимы... Имей это в виду.
Итак, что нужно делать. 1. открыть два исходных файла на чтение с помощью std::ifstream (#include <fstream>) 2. открыть результирующий файл на запись с помощью std::ofstream 3. читать в цикле из обоих исходных файлов последовательно с помощью std::getline в буфер типа std::string (#include <string>) 4. создать поток из каждого буфера с помощью std::istringstream (#include <sstream>) 5. читать в цикле из него слова с помощью операции >> в буфер типа std::string 6. на каждой итерации проверять наличие в буфере цифр с помощью strcspn (#include <cstring>) 7. если цифр нет, то записывать слово в выходной файл. 8. запись в выходной файл символа перевода строки ('\n') Пункты 3-8 лучше выделить в отдельную функцию, которая получает на входе поток ввода и поток вывода. За одну операцию проводит копирование слов без цифр из одной строки входного файла в выходной |
|||
|
||||
| Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Эта строка должна, по-моему, выглядеть так:
или так:
з.ы. При условии, что слова разделены пробелом. А если знаками препинания, то нужно делать соответсвующие условия в цикле. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
| pdiman58 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 1.10.2009 Репутация: нет Всего: нет |
спс.. работает..
ну да вот это не рабит.. ну эт можно текст без знаков препинания просто использовать.. |
||||||||
|
|||||||||
| Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
pdiman58, попробуй заменить свой цикл (хотя мне кажется, что это я его когда-то писал для другой, похожей задачи
Это сообщение отредактировал(а) Dov - 12.2.2010, 14:37 -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |