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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2013, 17:06   #1
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
Вопрос Вывод, ввод, и подсчет в файле

Ребята помогите пожалуйста. Никак не получается разобраться с проблемой подсчета количества рожденных людей в каждой области.
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <tchar.h>
//#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <windows.h>
#include <locale.h>
#include <fstream.h>
//---------------------------------------------------------------------------

#pragma argsused
//---------------------------------------------------------------------------

#pragma hdrstop


//---------------------------------------------------------------------------

struct human1
{
	char name[150];
	int year;
	char obl[30];
}man;

FILE *cfPtr;
VOID write();
VOID read ();
VOID scan();
VOID print();

void main()
{

setlocale(LC_ALL, "Russian");
int ch=0;
do
{
clrscr();
wcout<<L"Меню:\n1-ввести данi\n2-переглянути весь список\n3-пошук по областi\n4-вихiд\n";
scanf("%d", &ch);
switch (ch)
{
	case 1: {
		clrscr();
		wcout<<L"Ввести данi\n";
		write();
			getch();
		break;
	}
	case 2: {
		clrscr();
		wcout<<L"Данi для перегляду\n";
		read();
			getch();
		break;
	}
	case 3: {
		clrscr();
		wcout<<L"Пошук по областi\n";
		scan();
			getch();
		break;
	}
	case 4: {
		clrscr();
		wcout<<L"Вихiд\n";
			getch();
		break;
	}
}
}
while(ch!=4);
getch();
}


	VOID read ()
{
	if ((cfPtr=fopen("F:\\ b\\spisok3.txt","rb"))==NULL)
		wcout<<L"Файл не відкрився!!!\n";
		else
		{

			while(!feof(cfPtr))
			{
	  fread(&man,sizeof (struct human1),1,cfPtr);
	   if (man.year!=0) {


	 // printf ("%s %d %s", man.name, man.year, man.obl);
	  wcout<<man.name;
	  wcout<<man.year;
	  wcout<<man.obl<<endl;

		}

	  }

		fclose(cfPtr);
			}
}


   VOID write()
   {
	if ((cfPtr=fopen("F:\\ b\\spisok3.txt","a+"))==NULL)
		wcout<<L"Файл не вiдкрився!!!\n";
		else
		{


		wcout<<L"Введiть рiк народження\n";
		wcout<<L"Для вихoду натиснiть- 0\n";
		cin>>man.year;
		while (man.year!=0) {

		wcout<<L"Введiть iм'я\n";
		cin>>man.name;
		wcout<<L"Введiть область\n";
		print();
		//gotoxy(0, 12);
		cin>>man.obl;
		fwrite(&man, sizeof (struct human1),1,cfPtr);
		wcout<<L"Введiть рiк народження\n";
		wcout<<L"Для вихoду натиснiть- 0\n";
		cin>>man.year;
		}
		fwrite(&man, sizeof (struct human1),1,cfPtr);
		fclose(cfPtr);
		 }
		}

	VOID scan()
	{
	int AR=0;			int Vin=0;
	int Vol=0;			int Dn=0;
	int Don=0;			int Zhut=0;
	int Zak=0;			int Zap=0;
	int Iv=0;			int Kyiv=0;
	int Kir=0;			int Lug=0;
	int Lv=0;			int Muk=0;
	int Od=0;			int Pol=0;
	int Rivn=0;			int Sum=0;
	int Tern=0;			int Khar=0;
	int Kher=0;			int Khmel=0;
	int Chercaska=0;	int Chernivecka=0;
	int Chernihivska=0;

	if ((cfPtr=fopen("F:\\ b\\spisok3.txt","r"))==NULL)
		wcout<<L"Файл не відкрився!!!\n";
		else
		{
		   while(!feof(cfPtr))
			{
			fread(&man,sizeof (struct human1),1,cfPtr);
			if (strcmp("AR",man.obl)&&(man.year!=0)) {
			AR++;
			}
			if (strcmp("Vin",man.obl)&&(man.year!=0)) {
			Vin++;
			}
			if (strcmp("Don",man.obl)&&(man.year!=0)) {
			Don++;
			}
			}
			cout<<"AR %d\n",AR;
			cout<<"V %d\n",Vin;
			cout<<"D %d\n",Don;
			}




		fclose(cfPtr);


			}


	 VOID print()
	 {
		 wcout<<L"AR - АР Крим"<<endl;
		 wcout<<L"Vin - Вiнницька область"<<endl;
		 wcout<<L"Vol - Волинська область"<<endl;
		 wcout<<L"Dn - Днiпропетровська область"<<endl;
		 wcout<<L"Don - Донецька область"<<endl;
		 wcout<<L"Zhut - Житомирська область"<<endl;
		 wcout<<L"Zak - Закарпатська область"<<endl;
		 wcout<<L"Zap - Запорізька область"<<endl;
		 wcout<<L"Iv - Івано-Франківська область"<<endl;
		 wcout<<L"Kyiv - Київська область"<<endl;
		 wcout<<L"Kir - Кіровоградська область"<<endl;
		 wcout<<L"Lug - Луганська область"<<endl;
		 wcout<<L"Lv - Львівська область"<<endl;
		 wcout<<L"Muk - Миколаївська область"<<endl;
		 wcout<<L"Od - Одеська область"<<endl;
		 wcout<<L"Pol - Полтавська область"<<endl;
		 wcout<<L"Rivn - Рівненська область"<<endl;
		 wcout<<L"Sum - Сумська область"<<endl;
		 wcout<<L"Tern - Тернопільська область"<<endl;
		 wcout<<L"Khar - Харківська область"<<endl;
		 wcout<<L"Kher - Херсонська область"<<endl;
		 wcout<<L"Khmel - Хмельницька область"<<endl;
		 wcout<<L"Chercaska - Черкаська область"<<endl;
		 wcout<<L"Chernivecka - Чернівецька область"<<endl;
		 wcout<<L"Chernihivska - Чернігівська область"<<endl;
		 }




//---------------------------------------------------------------------------
Проблема в функции VOID scan() - она не правильно считает данные которые выводит на экран функция VOID read ().
KlIm16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет символов в файле Sektr63 Общие вопросы C/C++ 3 16.02.2013 00:40
Подсчет количества повторяющихся букв в файле _LeO_ PHP 1 22.03.2012 00:50
подсчет количества заданного слова в текстовом файле Old2691 Помощь студентам 0 14.01.2012 07:16
Подсчет строк в файле в Linux. Алексей Емеля Общие вопросы C/C++ 5 13.06.2011 21:00
работа с информацией в текстовом файле(ввод-вывод на языке С#) ~Mi@mi~ Помощь студентам 0 29.11.2010 20:23