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

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

Восстановить пароль Регистрация
 
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
08.12.2011, 17:34     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения #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 <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
        ofstream ofs("D:\\Kovi4ki.txt"); //создаём файл
        ofs << "Фраза без ковычек\"Фраза в ковычках\",без ковычек\"продолжение фразы в ковычках\""; //вводим строку с цитатами
        ofs.close(); //закрываем 
        ifstream ifs("D:\\Kovi4ki.txt");  //открываем
        if(!ifs.is_open())
        {
        cerr <<"File not found"<<endl; 
        system("pause");
        return 1;
        } 
        int i = 0;
        string s;
        while(getline(ifs,s,'\"'))//Читаем слова где есть ковычки  
        {      
                if(i%2) //деление с остатком
        cout<<s<<"\n";
                i+=1;
        }
cout <<s;
system("pause");
ifs.close(); //закрывем                
}
Добавлено через 21 час 46 минут
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
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <string> 
using namespace std;
int main(void)
{  char ch[2]; FILE * f;
  f = fopen("D:\\text2.txt","r");
  if (f != NULL)
     { 
  fseek(f,0,SEEK_END); long len = ftell(f);
  char *buf=new char[len+1];
  fseek(f,0,SEEK_SET);
  fread(buf, len,1, f); buf[len]='\0';
  long n = 0;
  long i = 0, j = 0, kol = 0;
  while(buf[i])
   { if (buf[i] == '?')
      { 
        for(j=n; j<=i;j++)
        { ch[0] = buf[j]; ch[1]='\0';
         cout <<(ch);
         } kol++;
         n = i+1;
      }
  long n = 0; 
  long i = 0, j = 0, kol = 0;
  while(buf[i])
   { if (buf[i] == '!')
      {
        for(j=n; j<=i;j++)
        { ch[0] = buf[j]; ch[1]='\0';
         cout <<(ch);
         } kol++;
         n = i+1;
      }
     if (buf[i]=='.') 
   {
    n = i+1;
    i++;
   }  
 fclose(f); 
 cout << endl;
 cout <<  "\n kol = " << kol;
 cout << endl;
 system("pause");
}
Добавлено через 17 секунд
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
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <string> 
using namespace std;
int main(void)
{  char ch[2]; FILE * f;
  f = fopen("D:\\text2.txt","r");
  if (f != NULL)
     { 
  fseek(f,0,SEEK_END); long len = ftell(f);
  char *buf=new char[len+1];
  fseek(f,0,SEEK_SET);
  fread(buf, len,1, f); buf[len]='\0';
  long n = 0;
  long i = 0, j = 0, kol = 0;
  while(buf[i])
   { if (buf[i] == '?')
      { 
        for(j=n; j<=i;j++)
        { ch[0] = buf[j]; ch[1]='\0';
         cout <<(ch);
         } kol++;
         n = i+1;
      }
  long n = 0; 
  long i = 0, j = 0, kol = 0;
  while(buf[i])
   { if (buf[i] == '!')
      {
        for(j=n; j<=i;j++)
        { ch[0] = buf[j]; ch[1]='\0';
         cout <<(ch);
         } kol++;
         n = i+1;
      }
     if (buf[i]=='.') 
   {
    n = i+1;
    i++;
   }  
 fclose(f); 
 cout << endl;
 cout <<  "\n kol = " << kol;
 cout << endl;
 system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 17:34     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
08.12.2011, 17:49     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения #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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
 
using namespace std;
 
 
bool isLimit(char c)
{
    char lim[] = {' ', '\t', '\n'};
    for(int i = 0; i < sizeof(lim); ++i)
    {
        if (c == lim[i])
            return true;
    }
    return false;
}
 
 
int main()
{
    ifstream fin("in.txt", ios::in);
 
    if (!fin)
    {
        return 1;
    }
 
    int count = 0;
    string word;
    ostringstream sentence;
 
    while(!fin.eof())
    {
        char symb;
        while(isLimit(symb = fin.peek()))
        {
            sentence << symb;
            if(symb == '\n')
                break;
            fin.seekg(1, ios::cur);
        }
 
        fin >> word;
        sentence << word;
        char last = word[word.size() - 1];
        if((last == '.') || (last == '!'))
        {
            sentence.str("");
            continue;
        }
 
        if (last == '?')
        {
            cout << sentence.str();
            sentence.str("");
            ++count;
        }
    }
 
    if(!count)
        cout << "no ?";
 
    return 0;
}
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
08.12.2011, 17:52  [ТС]     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения #3
PointsEqual, спасибо вам огромное! Скажите пожалуйста, а можно бы еще как - то доработать мою программу чтобы она тоже работала? Просто хочется принести и свой вклад)
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
08.12.2011, 18:08     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения #4
Вася1q, у вас страшно там, не охото) но наверно можно
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
08.12.2011, 18:11  [ТС]     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения #5
PointsEqual, =)Страшно-это точно))
Вот зацените код) после долгих мучений!
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
52
53
54
55
56
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <string> 
using namespace std;
int main(void)
{  char ch[2]; FILE * f;
  f = fopen("D:\\text2.txt","r");
  if (f != NULL)
     { 
 
// определяем длину файла
 
    fseek(f,0,SEEK_END); long len = ftell(f);
 
// выделяем буфер необходимого размера
 
    char *buf=new char[len+1];
 
// смещаем указатель на начало файла и
// считываем файл в буфер
 
    fseek(f,0,SEEK_SET);
    fread(buf, len,1, f); buf[len]='\0';
 // выделение предложений из текста
  long n = 0; // позиция начала предложения
  long i = 0, j = 0, kol = 0;
  while(buf[i])
   { if (buf[i] == '?')
      { //вывод символов вопросительного предложения
        for(j=n; j<=i;j++)
        { ch[0] = buf[j]; ch[1]='\0';
         cout <<(ch);
         }
         n = i+1;
      }
      // выделение предложений из текста
  long n = 0; // позиция начала предложения
  long i = 0, j = 0, kol = 0;
  while(buf[i])
   { if (buf[i] == '!')
      { //вывод символов вопросительного предложения
        for(j=n; j<=i;j++)
        { ch[0] = buf[j]; ch[1]='\0';
         cout <<(ch);
         }
         n = i+1;
      }
     if (buf[i]=='.') n = i+1;
    i++;
   }
 system("pause"); 
 fclose(f); 
  } 
 }
}
Yandex
Объявления
08.12.2011, 18:11     Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения
Ответ Создать тему
Опции темы

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