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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
#1

Поиск в файле заданной последовательности символов - C++

16.06.2012, 17:51. Просмотров 2170. Ответов 18
Метки нет (Все метки)

Друзья, помогите плиз!!! Нужно написать программу поиска в файле заданной последовательности символов не превышающей по длине 10 знаков. Заранее благодарю!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2012, 17:51     Поиск в файле заданной последовательности символов
Посмотрите здесь:
Поиск заданной последовательности символов в бинарном файле C++
C++ Определить количество пробелов в заданной последовательности символов
C++ Поиск в файле заданной буквы
Подсчитать количество вхождений в строку заданной последовательности символов C++
Поиск наибольшей последовательности цифр в файле C++
Поиск и замена символов в файле C++
Поиск последовательности в массиве символов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
16.06.2012, 21:51     Поиск в файле заданной последовательности символов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{ 
    setlocale(0, "rus"); // Русская консоль
    //ofstream outfile("Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
 
    char str[10]; // вводим последовательность символов
    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {
              cout << "Совпадение обнаружено " << endl; // совпадение обнаружено выходим из цикла
              break; 
            }
            
        } 
}
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:03  [ТС]     Поиск в файле заданной последовательности символов #3
Цитата Сообщение от David Sylva Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{ 
    setlocale(0, "rus"); // Русская консоль
    //ofstream outfile("Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
 
    char str[10]; // вводим последовательность символов
    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {
              cout << "Совпадение обнаружено " << endl; // совпадение обнаружено выходим из цикла
              break; 
            }
            
        } 
}
Уважаемый, а как написать, чтобы он выводил эти последовательности? Заранее спасибо!
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:08     Поиск в файле заданной последовательности символов #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{ 
    setlocale(0, "rus"); // Русская консоль
    //ofstream outfile("Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
 
    char str[10]; // вводим последовательность символов
    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {
              cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла 
                                               //  добавляем вывод                  
              break; 
            }
            
        } 
}
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
18.06.2012, 11:11     Поиск в файле заданной последовательности символов #5
Для David Sylva: мне кажется, решение не универсально... Ведь ищется целая строка, совпадающая с шаблоном. А если совпадает часть строки?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:14     Поиск в файле заданной последовательности символов #6
Согласен решение не универсально.
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:16  [ТС]     Поиск в файле заданной последовательности символов #7
Цитата Сообщение от David Sylva Посмотреть сообщение
cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла
// добавляем вывод
break;
Почему он не выводит "Совпадение обнаружено ", при вводе менее чем 10 символов?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:21     Поиск в файле заданной последовательности символов #8
Не понял вопроса? Я ввожу последовательность символов менее 10 и программа при совпадение выводит строку и набор искомых символов. У меня всё работает.
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:30  [ТС]     Поиск в файле заданной последовательности символов #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include "iostream"
#include <fstream> 
using namespace std; 
int main() 
{   setlocale(LC_ALL,"Russian"); 
    ofstream outfile("d:\Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
    char str[10]; // вводим последовательность символов  
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {             
              cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла 
                                               //  добавляем вывод                  
              break;  
            }        
        }  
}
Вот этот код программы?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:42     Поиск в файле заданной последовательности символов #10
Обрати внимание на то, что в моём коде строка ofstream outfile заккоментирована. Как только ты компилируешь код с этой строкой он очищает твой файл. Запиши текст заново в файл и вообще убери это строчку, я ёё сделал так для наглядности.
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:50  [ТС]     Поиск в файле заданной последовательности символов #11
Всё равно, ввожу например: regerg fewrff eff такую последовательность, затем нажимаю Enter и ничего не появляется. Ещё такой вопрос: а где создается этот файл?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:02     Поиск в файле заданной последовательности символов #12
Это логично потому что твой файл пустой. Файлы создаются в твоём проекте или там где они у тебя располагаются. Возьми мой код со строкой ofstream запусти его. Он создаст файл Text.txt в твоём проекте. Потом внеси в нёго несколько строчек на английском. Закомментируй строку ofstream и запусти и будет тебе счастье.
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:19  [ТС]     Поиск в файле заданной последовательности символов #13
Запустил программу и ввёл в консоли строчку(строка ofstream outfile("Text.txt"); не заккоментирована). Затем заккоментил и запустил появляется всё то же "Введите последовательность символов ( вводим на английском ) ", ввожу и ничего. Всё правильно?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:25     Поиск в файле заданной последовательности символов #14
Нет не правильно. В консоли ничего вводить не надо. В той папке где располается твой проект, создаёшь файл с расширение txt или doc всё равно. Вносишь в него информацию. Затем убери из исходного кода строчку ofstream и откомпилируй код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 12:36     Поиск в файле заданной последовательности символов
Еще ссылки по теме:
C++ Поиск, считывание и замена символов в файле [C++]
Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле C++
C++ Поиск последовательности символов и ее замена на другую
Подсчитать, сколько раз в заданной последовательности символов встречается буква "x" C++
В заданной последовательности слов найти все слова, начинающиеся с заданной приставки C++

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

Или воспользуйтесь поиском по форуму:
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:36  [ТС]     Поиск в файле заданной последовательности символов #15
Создал файл в папке проекта, записал в него строку. Затем закомпилил программу без строки ofstream outfile("Text.txt") и появляется в консоли всё то же: "Введите последовательность символов ( вводим на английском ) " Зачем тогда вообще это сообщение, если мы в консоли ничего не вводим?
Yandex
Объявления
18.06.2012, 12:36     Поиск в файле заданной последовательности символов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru