Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Martin Iden
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 10
#1

Интересный поиск)) Помощь безумно нужна - C++

17.06.2010, 17:42. Просмотров 674. Ответов 10
Метки нет (Все метки)

Такая проблема, если до завтра прогу не напишу, отчислят.

Дан текстовый файл, найти в нём нужное слово. Но сложность в том чтобы не использовать массивы. А без них не могу. Подскажите пожалуйста!!

Заранее спасибо!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2010, 17:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Интересный поиск)) Помощь безумно нужна (C++):

Поиск в файле... Нужна помощь... - C++
Помогите доработать код, мне необходимо было создать программу которая читатет файл 'd:\file.txt' , создает и копирует всё его содержимое в...

find_if, нужна помощь - C++
Здравствуйте! Помогите решить проблему пожалуйста. Тут все просто, но у меня куча ошибок ( Вот структура struct HardWare { ...

Нужна помощь с классом - C++
Вот напечатал это: #include <iostream> #define maxN 10 //количество вершин using namespace std; class directed_graph { ...

нужна помощь по л.р. (вопросы) - C++
значит ниже задания, в 3. и 4. нужно найти ошибки а рядом написать правильный вариант : 2. Чему равен результат выражения: x =...

CALLBACK. Нужна помощь - C++
Всем привет! Есть такой код: class ExpressionCalculator { private: ...

Нужна помощь с комментариями. - C++
Нужны комментарии и сделать так, чтобы вводилось только пятизначное число. #include "stdafx.h" #include <stdlib.h> #include...

10
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
17.06.2010, 18:06 #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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define FILE_NAME "simple.txt"
 
/* Читает построчно файл и выводит строки, содержащие указанное слово */
int main(void){
    FILE * f;
    char buf[BUFSIZ], wrd[BUFSIZ];
    printf("Word to find: ");
    scanf("%s", wrd);
 
    if ( ( f = fopen(FILE_NAME, "r") ) == NULL ){
        perror("fopen");
        exit(EXIT_FAILURE);
    }
    while ( fgets(buf, BUFSIZ, f) )
        if ( strstr(buf, wrd) )
            printf("%s", buf);
 
    fclose(f);
    exit(EXIT_SUCCESS);
}
0
Martin Iden
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 10
17.06.2010, 18:10  [ТС] #3
спасибо, но тут всё равно ведь массивы.
0
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
17.06.2010, 18:53 #4
а как ты это представляешь без массивов? по-буквенно? или можно тогда попробовать стринг юзать...
0
Martin Iden
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 10
17.06.2010, 19:35  [ТС] #5
побуквенно
0
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
17.06.2010, 19:51 #6
Martin Iden, а под слово, которое с клавиатуры вводится, что-то вроде
C
1
char c1 = 0, c2 = 0, c3 = 0...
приготовить и потом при чтении по символу как-то так проверять:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int ch;
while ( ( ch = getchar() ) != '\n' ){
  if ( c1 != 0 ){
    if ( c2 != 0 ){
      ....
      if ( c256 != 0 )
        break;
      else
        c256 = ch;
    }
  ...
  else
    c1 = ch;
}
?
Удачи!
0
maxim5579
1 / 1 / 0
Регистрация: 15.03.2010
Сообщений: 7
18.06.2010, 00:37 #7
Сделай на стрингах. Прочитай файл в TStringGrid, затем в каждой строке функцией strstr ищи исходный текст. И никаких массивов
0
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
18.06.2010, 01:17 #8
Цитата Сообщение от maxim5579 Посмотреть сообщение
Прочитай файл в TStringGrid
Я Вас, видимо, удивлю, но далеко не все пишущие на С/С++ являются счастливыми обладателями легальных/пиратских версий компиляторов Борланд. Так, что, прочитать файл в TStringGrid - предложение, конечно, заманчивое, но не для всех выполнимое...

Вот "на стрингах"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
 
int main(){
    const char * file_name = "simple.txt";
    std::string buf, wrd;
    
    std::cout << "Word to find: ";
    std::cin >> wrd;
    
    std::ifstream ifs(file_name);
    if ( ! ifs.is_open() ){
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
    while ( std::getline(ifs, buf) )
        if ( buf.find(wrd) != std::string::npos )
            std::cout << buf << std::endl;
    ifs.close();
    
    return 0;
}
0
maxim5579
1 / 1 / 0
Регистрация: 15.03.2010
Сообщений: 7
18.06.2010, 14:26 #9
Sorry! очепяточка вышла. Имелось ввиду TStringList.
Со TStringGrid действительно глупо получилось.
0
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
18.06.2010, 16:48 #10
Цитата Сообщение от maxim5579 Посмотреть сообщение
Имелось ввиду TStringList
Та же история... Это такая борландовская альтернатива MFC, или что-то вроде того... TStringList и прочее ТЧегоНибудь - это не стандартные элементы С++.
0
maxim5579
1 / 1 / 0
Регистрация: 15.03.2010
Сообщений: 7
18.06.2010, 20:27 #11
Тогда сорри за "не в тему". Впредь буду внимательнее.
0
18.06.2010, 20:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2010, 20:27
Привет! Вот еще темы с ответами:

Нужна помощь с программой - C++
ПРограмма должна выполнять расчет коэффициентов характеристического полинома квадратной матрицы

Нужна помощь с MD5 на Си/Си++ - C++
Мне нужны либо библиотеки, в которых реализована функция-аналог md5() на PHP, либо код. Но библиотеки для висуалс++ не предлагать. Также...

Нужна помощь Строки. - C++
Составить программу вывода последовательности символов ZYYXXX...AA..AA Y на экран.

Нужна помощь начинающему (while). - C++
Собствено вот код: //While DEMO //прога выводит количество выполненых цыклов while #include &lt;stdio.h&gt; #include &lt;lostream.h&gt; int...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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