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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Ulles
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 5
#1

Поиск теста - C++

12.07.2011, 15:24. Просмотров 1039. Ответов 10
Метки нет (Все метки)

Привет, можете плиз подсказать часть коды, где в c++ в файле file.txt ищется слово "disabled" и если оно есть тогда программы выдает cout << "Ok"; а если программа не нашла это слово, то выдает cout << "Error";.
Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2011, 15:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск теста (C++):

Из теста - C++
Укажите наиболее старший (длинный) из перечисленных типов: Выберите один ответ: char long int double float Укажите...

Очередное, из теста - C++
Текст вопроса При вызове multiply (X1=1, Y1=2) по форме описания: int multiply (X, Y) { X +=Y++ return ++X * Y++ } функция...

Создание теста - C++
Нужно написать программу(тест) которая выводит вопрос и 4 варианта ответа, а в конце тестирования кол-во правильных ответов Кто может...

Написание программы теста - C++
Здравствуйте дорогие программисты. Если это возможно прошу помочь с решением проблем 1. Student Registration: Students taking the exam...

Реализация теста с да или нет - C++
Извините за нубство, только начал изучать c++, гуглил-не нашел. Нужно реализовать вопросник (в консоли), ответы только да или...

Вывод теста на экран по частям - C++
У меня есть функция, которая выводит содержимое файла на экран. И мне нужно создать функцию, что бы я могла большой текст файла...

10
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
12.07.2011, 15:54 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Ulles Посмотреть сообщение
Привет, можете плиз подсказать часть коды, где в c++ в файле file.txt ищется слово "disabled" и если оно есть тогда программы выдает cout << "Ok"; а если программа не нашла это слово, то выдает cout << "Error";.
Заранее спасибо.
C++
1
2
3
4
5
6
7
8
9
   std::string s(
  (std::istreambuf_iterator<char>(
    *(std::auto_ptr<std::ifstream>(
      new std::ifstream("file.txt")
    )).get()
  )), 
  std::istreambuf_iterator<char>());
 if ( s.find( "disabled") != -1 ) cout << "Ok";
 else cout << "Error";
4
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
12.07.2011, 15:59 #3
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 <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream file("1.txt");
    string a;
    bool flag=1;
    file>>a;
    while(flag && !file.eof())
    {
        if (a=="disabled")
         flag=0;
        file>>a;
    }
    if (flag)
     cerr<<"Error";
    else
     cout<<"OK";
 
}
Проверки и прочее сами добавите.

Добавлено через 3 минуты
An1ka, вы наверное слишком усложнили, у меня 4 ошибки при компиляции.
1
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,777
12.07.2011, 16:49 #4
An1ka, лихо закручено!

Gepar, всё там нормально работает!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <fstream>
#include <iterator>
#include <algorithm>
    
int main(){
    std::string s((std::istreambuf_iterator<char>(*(std::auto_ptr<std::ifstream>(new std::ifstream("file.txt"))).get())), 
        std::istreambuf_iterator<char>());
    std::cout << ( s.find( "disabled") == std::string::npos ? "Error" : "Ok" ) << std::endl;
 
    return 0;
}
Поиск теста
2
Ulles
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 5
12.07.2011, 17:04  [ТС] #5
Всем спасибо!
А как усложнить этот код, добавив это: если программа нашла в тексте "disabled1", выдать в консоль "11", если нашла в тексте "disabled2" - то выдать "22", "disabled3" - то выдать "3", а если ничего из вышеперечисленного - "Error"?
Спасибо.
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
12.07.2011, 18:57 #6
Ulles,

Цитата Сообщение от Ulles Посмотреть сообщение
Всем спасибо!
А как усложнить этот код, добавив это: если программа нашла в тексте "disabled1", выдать в консоль "11", если нашла в тексте "disabled2" - то выдать "22", "disabled3" - то выдать "3", а если ничего из вышеперечисленного - "Error"?
Спасибо.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <boost/regex.hpp>
 
struct Func
{
    void operator() (std::string str)
    {
        std::string temp = str.substr(str.length() - 1);
        std::cout << temp + temp << std::endl;
    }
};
 
int main()
{
    std::string word("disabled");
    boost::regex reg(word + "[0-9]");
    std::string text("Some text about disabled1. One upon a time disabled2 go for a walk. The end of disabled8...");
    std::string::const_iterator start_it = text.begin();
    std::string::const_iterator end_it = text.end();
    boost::smatch results;
    std::vector <std::string> v_words;
    Func print;
 
    while (boost::regex_search(start_it, end_it, results, reg))
    {
        v_words.push_back(results[0]);
        start_it = results[0].second;
    }
    
    if (!v_words.empty())
        std::for_each(v_words.begin(), v_words.end(), print);
    else
        std::cout << "Error." << std::endl;
 
    return 0;
}
2
Ulles
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 5
12.07.2011, 19:06  [ТС] #7
nameless, Спасибо, но у меня почему-то куча ошибок
Поиск теста

 Комментарий модератора 
Прикрепляйте картинки к сообщениям.
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
12.07.2011, 19:12 #8
Ulles, я использовал boost::regex, входящая в состав набора библиотек boost (качать нужно http://www.boost.org/), для поиска подстроки в исходной строке, по заданному регулярному выражению..
0
Ulles
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 5
12.07.2011, 19:25  [ТС] #9
Извини конечно, но есть возможность сделать это без boost`а?
Просто сейчас не имею возможность скачать
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.07.2011, 19:33 #10
Ulles, если у тебя 10-я студия или ты по линуксом то замени boost:: на std::, а
<boost/regex.hpp> на <regex>
1
Ulles
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 5
12.07.2011, 19:37  [ТС] #11
Не, я к сожалению пишу через eclipse.
просто со времен java привык
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2011, 19:37
Привет! Вот еще темы с ответами:

Визуальное программирование. Считывание теста - C++
Создать программу, которая могла бы считывать введённую функцию и потом рассчитать по ней. Как сие реализовать?

Чтение вопросов теста из файла - C++
Как реализовать чтобы чтение вопросов было не с самой программы, а с файла #include &lt;vector&gt; #include &lt;Windows.h&gt; #include...

Помогите ответить на вопросы теста! - C++

Народ спасайте, на счет теста - C++
Парни спасайте. Нужно узнать откуда в этой программе берутся вопросы, картинки и все остальное для теста. Я понимаю что из файлов ...


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
12.07.2011, 19:37
Ответ Создать тему
Опции темы

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