| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > небольшая проблемка в коде.. |
| Автор: pdiman58 11.2.2010, 23:23 | ||||
| Задание таково: "Написать программу на языке C++ чересстрочного слияния двух текстовых файлов с удалением в каждой строке слов в которых встречаюстя цифры". Моя прога работает, но с небольшой погрешностью она удаляет не все слово, а только предшествующую цифре часть слова и саму цифру.. Код:
вот мой код
Пожалуйста помогите поправить данную проблемку.. |
| Автор: Веталька 11.2.2010, 23:48 |
| удаляй символы слова пока не дойдешь до пробела (==) |
| Автор: Neox_GeForce 11.2.2010, 23:50 | ||||
вижу ошибку
постав
|
| Автор: pdiman58 12.2.2010, 09:47 | ||||||
не помогло.. теперь вообще ничего не удаляется.. остаются слова с цифрами.. |
| Автор: bsa 12.2.2010, 11:42 |
| pdiman58, воспользуйся поиском. Такое задание было на этом форуме уже несколько раз! |
| Автор: pdiman58 12.2.2010, 12:08 |
| я пользовался поиском.. оттуда и почерпнул многое.. но вот как сделать чтобы удалялось все слово не понял.. если пробовать прибавлять цифарки в строчках beg+1 end+1 то получается как бы фиксированная величина.. а если в слове после цифры будет больше букв чем в заданной величине они все равно остануться.. |
| Автор: bsa 12.2.2010, 12:43 |
| Понятия язык С++ и компилятор 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 12.2.2010, 12:59 | ||||
Эта строка должна, по-моему, выглядеть так:
или так:
з.ы. При условии, что слова разделены пробелом. А если знаками препинания, то нужно делать соответсвующие условия в цикле. |
| Автор: pdiman58 12.2.2010, 14:00 | ||||||||
спс.. работает..
ну да вот это не рабит.. ну эт можно текст без знаков препинания просто использовать.. |