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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Tetraider
 Аватар для Tetraider
15 / 15 / 1
Регистрация: 06.06.2012
Сообщений: 58
21.11.2013, 20:28     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #1
Помогите пожалуйста доделать программу)
Собственно, она считывает текст из файла и выводит на экран только предложения, не содержащие запятых.
Но у меня программа работает только в том случае, если в файле каждое предложение начинается с новой строки.
Заранее благодарен за помощь)

Код:

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
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string str;
    std::cout<<"Enter infile name\n";
    std::cin>>str;
    std::ifstream ifs(str.c_str());
    if(!ifs)
    {
        std::cerr<<"Can` t open file "<< str <<'\n';
        return 1;
    }
    while(!ifs.eof())
    {
        if(!ifs.eof())
        {
            std::getline(ifs, str);
            if(str.find(',') == std::string::npos)
                std::cout<<str<<'\n';
        }
    }
    ifs.close();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 20:28     Считать текст из файла и вывести на экран только предложения, не содержащие запятых
Посмотрите здесь:

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово C++
C++ Считать текст из файла и вывести на экран только предложения, не содержащие запятых
C++ Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых.
Нужна программа, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых C++
Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
21.11.2013, 21:18     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #2
Tetraider, а что вам требуется? Сделать, что бы она работала без переносов строк? Читаете весь файл в один string, в цикле ищете и удаляете все символы переноса, затем в цикле читаете в дополнительную переменную все символы до первой точки и работаете уже с ней)
ABKA
7 / 7 / 0
Регистрация: 06.11.2013
Сообщений: 50
21.11.2013, 22:56     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #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
24
25
26
27
28
#include <iostream>
#include <fstream> 
int main()
 
{
    setlocale(LC_ALL, "RUSSIAN");
    std::string str;
    std::cout<<"Enter infile name\n";
    std::cin>>str;    
    std::ifstream ifs(str.c_str());
    if(!ifs)
    {
        std::cerr<<"Can` t open file "<< str <<'\n';
        return 1;
    }
    do
    {
       
        
            std::getline(ifs, str, '.'); //Функция getline перегружена. Она может принимать 2 аргумента(как было у вас) или 3, что нам и нужно.
                                         // То есть считывает не до конца строки, а до точки.
            if(str.find(',') == std::string::npos)
                std::cout<<str<<'\n';
        
    }while(!ifs.eof());
    ifs.close();
    return 0;
}
Как-то так
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
22.11.2013, 12:54     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #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
28
29
30
31
32
33
34
35
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    ifstream in_file("infile.txt");
    char ch;
        string str;
    if(!in_file){
            cout << "fil not found"; return 1;
    }
    else
    {
        while(in_file.good())
        {
 
            in_file.get(ch);
 
            str.push_back(ch);
            if(ch == '.'|| ch =='\n')
                     {
                 if(str.find(',')== str.npos)
                cout << str << endl;
 
                str.clear();
 
            }
        }
    }
    return 0;
 
}
Добавлено через 9 часов 55 минут
а вот, немного исправил:
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
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    ifstream in_file("in.txt");
    char ch;
        string str;
    if(!in_file){
            cout << "fil not found"; return 1;
    }
    else
    {
        while(in_file.get(ch))
        {
            str.push_back(ch);
            if(ch == '.')
                     {
                 if(str.find(',')== str.npos)
                cout << str << endl;
 
                str.clear();
 
            }
        }
    }
    return 0;
 
}
Tetraider
 Аватар для Tetraider
15 / 15 / 1
Регистрация: 06.06.2012
Сообщений: 58
22.11.2013, 16:37  [ТС]     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #5
Спасибо, а не подскажете как работает строчка
C++
1
if(str.find(',')== str.npos)
?
Ну т.е. ищет запятые, а как конкретно?)
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
22.11.2013, 16:45     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #6
C++
1
if(str.find(',')== str.npos)
здесь "str.find(',')" проходит всю строку, если же среди символов находит запятую то останавливается. "str.npos" -это конец строки. Поэтому здесь проверка, если запятая неббыла найдена то str.find(',') пройдет всю строку до конца, а если найдет запятую то останавливается и уже не будет равна str.npos
n_lanskaya
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 14
15.12.2014, 06:55     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #7
jurok_85, а как сделать, чтобы мог выдавать русский шрифт?
Пыталась вписывать SetConsoleCP(1251); SetConsoleOutputCP(1251);
Но, выдаёт ошибку, куда не впихаю. Его где-то ещё прописать надо? :с
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
15.12.2014, 13:43     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #8
что за компилятор у тебя?
n_lanskaya
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 14
15.12.2014, 16:59     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #9
jurok_85, MinGW
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
15.12.2014, 18:17     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #10
у меня тоже, программирую в code::blocks 10.05
вот пример в полне рабочей проги с русским языком
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string str;
    cout << "Введите строку: ";
    getline(cin, str);
    cout << str;
    return 0;
 
}
и еще в настройках Code Blocks: Settings - Editor, поставьте Windows-1251, если у вас тоже Code::blocks
вот здесь подробнее
n_lanskaya
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 14
15.12.2014, 20:31     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #11
jurok_85, в чём может быть проблема, если всё итак поставлено, но вместо языка, всё равно, каракули?
У меня w8.1, могло как-то повлиять?
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
16.12.2014, 17:26     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #12
да, попробывал вчера на винде 8.1, тоже не получилось. Зайди на эту Русский шрифт в code::block 10-05ссылку. Спроси у alsav22, он по матёрее будет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2014, 03:21     Считать текст из файла и вывести на экран только предложения, не содержащие запятых
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
n_lanskaya
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 14
17.12.2014, 03:21     Считать текст из файла и вывести на экран только предложения, не содержащие запятых #13
jurok_85, хорошо, спасибо))
Yandex
Объявления
17.12.2014, 03:21     Считать текст из файла и вывести на экран только предложения, не содержащие запятых
Ответ Создать тему
Опции темы

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