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

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

Восстановить пароль Регистрация
 
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
23.04.2014, 00:17     Проверить баланс скобок в тексте программы #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
#include <iostream.h>
#include <fstream>
#include <conio.h>
 
int main()
{
 
FILE *BAS = fopen("BASIC.txt","r");
 
   if (BAS==NULL)
   {
      cout<<" No File";
   }
 
   else
   {
      ifstream file("BASIC.txt");
      cout<<file.rdbuf();
   }
 
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 00:17     Проверить баланс скобок в тексте программы
Посмотрите здесь:

C++ Баланс скобок
Баланс скобок C++
C++ Баланс скобок
Проверить правильность расстановки и вложенности скобок в тексте (абстрактный стек) C++
C++ Проверить баланс скобок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 00:30     Проверить баланс скобок в тексте программы #2
Судя по всему, задача состоит просто в проверке равенства количества открывающих и закрывающих скобок. Или вопрос в другом?
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
23.04.2014, 00:31  [ТС]     Проверить баланс скобок в тексте программы #3
Все верно!
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 01:07     Проверить баланс скобок в тексте программы #4
AndrewWhite, если задача на обучение работе с файлами, то скорее всего нужно просто создать целочисленную переменную, до конца читаем посимвольно файл, встречаем открывающую скобочку - инкрементируем, закрывающую - декрементируем переменную. Если понятно, как читать файл, то вообще не должно проблем возникнуть.
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
23.04.2014, 11:47  [ТС]     Проверить баланс скобок в тексте программы #5
Ок, разобрался, вот конечный результат.

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
#include <iostream.h>
#include <fstream>
#include <conio.h>
 
 
int main()
{
int l=0, r=0;
char ch;
string s;
fstream F;
F.open("BASIC.txt");
 
   if (F==NULL)
      {
      cout<<" No File";
      }
 
   else
      {
         while(!F.eof())
            {
            F.get(ch);
            cout << ch;
               if(ch == '(')
                  l++;
               if(ch == ')')
                  r++;
            }
            cout <<"\n(: " << l << endl << "): " << r << endl;
            if (r>l)
               cout << "')' more than '('" << endl;
            else if (l>r)
               cout << "'(' more than ')'" << endl;
            else if (l==r)
               cout << "'(' equal ')'" << endl;
      }
 
getch();
return 0;
}
Yandex
Объявления
23.04.2014, 11:47     Проверить баланс скобок в тексте программы
Ответ Создать тему
Опции темы

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