{lang: ‘ru’}

Задача: Дан текстовый файл, содержащий программу на языке С. Проверить эту программу на соответствие числа открывающих и закрывающих фигурных скобок.

Решение:

#include <iostream>
#include <fstream>

using namespace std;

void main()
{
	setlocale(LC_ALL, "Russian");
	int opened = 0;//количество открывающих скобок {
        ifstream infile("prog.txt");//открытие потока для чтения

	while(!infile.eof())//пока файл не достигнет конца
	{
		if(infile.get() == '{') //берем 1 символ и сравниваем со скобкой
			opened++;
		if(infile.get() == '}')
			opened--;
    }

	infile.close();//закрытие потока для чтения

	if(opened != 0)
	{
		cout << "Проверьте расстановку ";
		if(opened < 0)
			cout << "открывающих";
		if(opened > 0)
			cout << "закрывающих";
		cout << " скобок в программе!" << endl;
	}
	else
		cout << "Все скобки расставлены" << endl;
}

Содержание файла prog.txt:

#include <iostream>
using namespace std;

void main()
{
    for(int i = 0; i < 10; i++)
    {
	cout << "Hello, World!" << endl;
    }
}


Получайте новые статьи блога прямо себе на почту