Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 85 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 22:35   #1
proga.
 
Регистрация: 12.04.2009
Сообщений: 8
Сообщение [C++] чтение из файла

программа должна считать скобки в файле и говорить каких нехватает (открывающихся или закрывающихся). как сделать так чтобы чтение шло по всему файлу а не до конца строки? что, куда подписать?
Код:
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;

void main()
{
	int Closed = 0;
	int Opened = 0;
	char openedBracket = '(';
	char closedBracket = ')';
	char Buf[10000];
	FILE *file;
	
	file = fopen("D:\\omg.txt", "r");
	fgets(Buf, 10000, file);
	
	
	for (int i=0; i<10000; i++){
		if (Buf[i] == openedBracket){
			Opened++;
		}
		if (Buf[i] == closedBracket){
			Closed++;
		}
	}
	if (Opened == Closed)
		cout << "All OK!\n";
	if (Opened > Closed)
		cout << "Need more closing bracket\n";
	if (Opened < Closed)
		cout << "Need more opening bracket\n";
	fclose(file);
}

Последний раз редактировалось proga.; 25.09.2009 в 22:37.
proga. вне форума Ответить с цитированием
Старый 25.09.2009, 23:28   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
#include <iostream>
#include <stdio.h>
using namespace std;

void main()
{
	int Closed = 0;
	int Opened = 0;
	char openedBracket = '(';
	char closedBracket = ')';
	char Buf;  // Массив больше не нужен
	FILE *file;
	
	file = fopen("D:\\omg.txt", "r");
	
	
	while((Buf = fgetc(file)) != EOF) { // Посимвольно читаем из файла, вместо копирования строк в буфер
		if (Buf == openedBracket){
			Opened++;
		}
		if (Buf == closedBracket){
			Closed++;
		}
	}
	if (Opened == Closed)
		cout << "All OK!\n";
	if (Opened > Closed)
		cout << "Need more closing bracket\n";
	if (Opened < Closed)
		cout << "Need more opening bracket\n";
	fclose(file);
}
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 85 тыс рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из файла e@gle Общие вопросы Delphi 3 14.12.2008 17:21
Чтение из файла Amen БД в Delphi 2 09.12.2008 10:40
Чтение файла [Smarik] Помощь студентам 8 28.04.2008 22:15
Чтение файла Stanislav Общие вопросы Delphi 18 24.11.2007 20:45
Чтение из файла Need_Help Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2007 05:37