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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Мила Хорошилова
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 18
#1

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

11.02.2013, 21:06. Просмотров 2454. Ответов 5
Метки нет (Все метки)

помогите, пожалуйста, написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы. заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 21:06     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 20:22     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cctype>
 
void sentence(std::istream& in)
{
    bool state = false;
    char c;
 
    while ((c = in.get()) && isspace(c))
        ;
    if (c == '-') // вместо тире знак "минус"
        state = true;
    else
        state = false;
 
    if (state) {
        while ((c = in.get()) && isspace(c)) // пропуск пробелов
            ;
        std::cout << c;
        while ((c = in.get()) && state) {
            std::cout << c;
            if (c == '.' || c == '!' || c == '?')
                state = false;
        }
        std::cout << std::endl;
    }
}
 
int main()
{
    std::string file_name;
 
    std::cout << "file name: ";
    std::cin >> file_name;
 
    std::ifstream in;
    in.open(file_name.c_str(), std::ios::in);
    if (!in.good()) {
        std::cout << "Couldn't read file.\n";
        exit(1);
    }
 
    while (!in.eof())
        sentence(in);
    
    in.close();
    
    return 0;
}
Мила Хорошилова
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 18
24.02.2013, 14:23  [ТС]     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы #3
спасибо! я не гений программирования и плохо в этом разбираюсь. не могли бы пояснить функции? буду очень признательна
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
24.02.2013, 17:21     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы #4
функция void sentence(std::istream& in) ничего не возвращает (она просто отображает предложения.) и принимает в качестве аргумнта сылку на поток типа istream (входящий поток: файл либо консоль, либо ещё что-то). Далее идёт цикл while ((c = in.get()) && isspace(c)), который просто пропускает пробельные символы. В конструкции
C++
1
2
3
4
 if (c == '-') // вместо тире знак "минус"
        state = true;
    else
        state = false;
просто производится поиск предложения начинающегося со знака "минус". И если это действительно так, тогда срабатывает условие
C++
1
if (state) ...
и while ((c = in.get()) && state) ... в котором отображается предложение. Если встретились символы свидетельстующие о конце предложения
C++
1
2
if (c == '.' || c == '!' || c == '?')
                state = false;
state у нас принимает значение false и вывод прекращается.
Функция main просто открывает поток в файл и производится чтение при помощи функции описаной выше sentence() до тех пор, пока не встретится конец файла. На этом вывод заканчиваетя и закрывается поток in.close();
Мила Хорошилова
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 18
24.02.2013, 22:00  [ТС]     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы #5
std::cin >> file_name;


мне пишет ошибку Ошибка 1 error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
24.02.2013, 22:34     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы #6
попробуйте добавить заголовок #include <cstring>
Yandex
Объявления
24.02.2013, 22:34     программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробелы
Ответ Создать тему
Опции темы

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