Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск в текстовом файле заданной подстроки 
:(
    Опции темы
snex
Дата 26.6.2008, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Нужна консольная программа на С++ которая производит поиск  в  текстовом файле заданной подстроки вводимой с клавиатуры, найденную строку необходимо выдавать на экран вместе  с ее номером в файле.
Как найти в строке под строку разобрался, а с поиском в файле возникла проблема.

PM MAIL   Вверх
bsa
Дата 26.6.2008, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(snex @ 26.6.2008,  07:10)
Как найти в строке под строку разобрался, а с поиском в файле возникла проблема.

Какая?
Кто мешает читать построчно, а в считанной строке искать подстроку?
Код
#include <string>
#include <fstream>
#include <iostream>

int main()
{
    std::string text;
    std::cout << "Input file name: " << std::flush;
    std::getline(std::cin, text);
    std::ifstream file(text.c_str());
    if (!file.is_open()) {
        std::cerr << "Unable to open file" << std::endl;
        return 1;
    }
    std::cout << "Input substing: " << std::flush;
    std::getline(std::cin, text);
    std::string line;
    while(file) {
          std::getline(file, line);
          if (line.find(text) != std::string::npos)
               std::cout << line << std::endl;
    }
    return 0;
}

PM   Вверх
snex
Дата 26.6.2008, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Спасибо за помощь bsa

Добавлено через 13 минут и 55 секунд
Еще вопрос (я в С++ только вторые сутки)
Можно преобразовать тип string в chars чтобы использовать
функцию strlen() или есть другие варианты подсчитать количество 
символов в тексте до нужного слова?

PM MAIL   Вверх
LavYaAll
Дата 26.6.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 62
Регистрация: 1.5.2008

Репутация: 1
Всего: 1



string это не тип, это класс.
Если тебе надо получить количество символов, то можно использовать метод класса size(), или length().
Чтоб получить указатель на char, пользуйся методом c_str().
PM   Вверх
snex
Дата 26.6.2008, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



все разобрался
вот что надо было, может кому-нибудь пригодится :

Код

#include <fstream>
#include <iostream.h>
int main()
{
int i=0;
    string text;
    cout << "File name: " << flush;
    getline(cin, text);
    ifstream file(text.c_str());

    cout << "Find string: " << flush;
    getline(cin, text);
    string line;
    while(file) {
         getline(file, line);
         i++;
          if (line.find(text) != string::npos)
              {
              cout <<endl<<line << endl;
              break;
              }

    }
        cout <<"String#: "<<i;
        cin >> i;

}

PM MAIL   Вверх
snex
Дата 26.6.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



как можно решить такую задачу:
 читает из файла и пишет в другой файл закодированные символы.
Схема шифровки: c = c^key[i], где key - строка, которая передается как параметр командной строки. Программа использует символы из key циклически, пока не будет считан весь ввод.


Это сообщение отредактировал(а) snex - 26.6.2008, 10:45
PM MAIL   Вверх
snex
Дата 26.6.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



все спасибо тема закрыта
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0678 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.