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

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

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

Почему не работает этот код? - C++

16.11.2013, 14:34. Просмотров 199. Ответов 0
Метки нет (Все метки)

Помогите разобраться с кодом, что в нем не так? Компиллируется, ввожу число, выводит на экран сообщение, что необходимо вывести предложения, содержащие заданное число строк и далее ничего не происходит и выйти из программы можно только путем ее закрытия.
Очень долго разбираюсь, но безуспешно. Буду очень признателен.
Ниже само задание и мой код. Если можно, то прокомментируйте ошибки подробно. Заранее благодарен.

Задание:

Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного числа слов.

Код:

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
67
68
#include<fstream.h>
#include<stdio.h>
#include<conio.h>
int main(){
 
  clrscr();
 
  //proverka naliciya faila//
    ifstream fin("1.txt",ios::nocreate);
  if(!fin) { cout<<"Error open file."<<endl;
    return 1;
  }
 
 
  //videlenie pamyati pod fail//
  fin.seekg(0,ios::end);
  long len=fin.tellg();
  char *buf=new char[len+1];
 
 
  //schitivanie faila b bufer//
  fin.seekg(0,ios::beg);
  fin.read(buf,len);
  buf[len]='\0';
 
 
  //sozdanie potoka vihoda i otkritie faila
  ofstream fout("1out.txt",ios::out);
  if(!fout){
    cout<<"Can't open output file"<<endl;
    return 1;
  }
 
 
  //vvod shablona poiska predlozeniy
  int num_word; //shablon cisla slov v predlozenii
  cout<<"Enter number"<<endl;
  cin>>num_word;
  cout<<"Display the proposals contain"<<" "<<num_word
      <<" "<<"words"<<endl;
 
 
  // poisk zadannogo usloviem predlozeniya
  char distrib[]=".,!?/<>:;)(*"; //massiv razdeliteley slov
  long n=0,       //dlya hraneniya pozicii nachala tekyshego predlozeniya
         i=0,       //dlya prosmotra massiva
             j=0;       //dlya vivoda predlozeniya
  int nw=0;       //podchet slov v predlozenii
 
  while(buf[i]){  //cikl zavershaetsya pri nahozdenii nul-simvola
    if(buf[i]=='?'||buf[i]=='.'||buf[i]=='!'){
        for(j=n;j<=i;j++){
       if(buf[i]==distrib[j]||buf[i]==' '){
             nw++;
                if(nw==num_word){
             fout<<buf[j];
                 n=i+1;
                 i++;
                }
           }
        }
    }
  }
  fin.close();
  fout.close();
  cout<<endl;
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 14:34     Почему не работает этот код?
Посмотрите здесь:

Здравствуйте, Почему не работает этот код? - C++
Здравствуйте.Прошу помочь.Почему не работает этот код? std::ifstream input_file(&quot;http://nanshakov.16mb.com/developed/test/hash.txt&quot;); ...

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

Как этот код работает? - C++
#include &lt;iostream&gt; using namespace std; int main () { char ch = 0; int count = 0; cout &lt;&lt; &quot;Please enter a sentence:&quot;...

Как и почему работает код? - C++
Доброго времени суток. Не могу понять почему работает код : struct sA{ char* val; sA(){ val = nullptr; } sA(char*...

Почему правильно работает код? - C++
В первом файле 5 слов, во втором - 10. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { FILE *f1, *f2; f1 =...

табуляция функции. почему не работает код? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdlib.h&gt; #include &lt;cstdio&gt; using namespace std; float arctg(float x) ...

Как работает данный код? И почему не компилируется? - C++
Обьясните пожалуйста как работает данный код, и скажите почему он не компилируется? И есть ли способ считать числа еще быстрее? ...

Почему не работает заданный код? (библиотека Gzip) - C++
Вот решил разобраться таки с библиотекой gzip. Покопался в нете,почитал документацию.Но столкнулся с определённой проблемой,не как не могу...

Почему код работает, хотя есть выход за пределы массива? - C++
Здравствуйте, собственно, хотел спросить. Почему этот код работает, несмотря на то, что в 35 строке массив выходит за пределы? Может я...

Произведение элементов одномерного массива. Код работает, но почему-то путает знаки - C++
using namespace std; int main(){ int mas; for ( int i=0; i&lt;20; i++) { cout&lt;&lt;&quot;A=&quot;; cin&gt;&gt;mas; } /*for (int...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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