ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Работа с файлами
  #1  
Старый 30.05.2009, 20:10
Аватар для unfii
unfii
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме:
19399

Репутация: 5
По умолчанию Работа с файлами

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

На чем я остановился?
Код:
#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "file.txt"
struct oxota
{
char prizvishe;
int vpol;
int vaga;};

void main ()
{
struct oxota data[100];
char line[100];
int v=0;
FILE*fp=fopen(FILE_NAME, "r");
while (fgets(line, sizeof(line), fp)!=NULL)
{
sscanf(line, "%s %i %i", &data[v].prizvishe, &data[v].vpol, &data[v].vaga);
printf("%s", line);
v++;
}
printf("\n");
}
 
Ответить с цитированием

  #2  
Старый 30.05.2009, 20:24
Аватар для Fata1ex
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

В каком виде строки в файле?
 
Ответить с цитированием

  #3  
Старый 30.05.2009, 20:29
Аватар для unfii
unfii
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме:
19399

Репутация: 5
По умолчанию

пример 2 записей
Код:
Babyrka 12 300
Pupkin 13 200
 
Ответить с цитированием

  #4  
Старый 30.05.2009, 21:06
Аватар для Fata1ex
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Код:
// main.cpp

#include //
#include "readname.h"
#include "readmass.h"
#include "readcount.h"


const int N = 10;

int main () {
	const char* name; 
	scanf_s("%s",&name);
	FILE *f;
	char* names;
	int* mass;
	int* count;
	char buffer[256];

 f=fopen(name, "r");

if (f) { 
	while (fgetc(f)!=EOF) { 
		for (int i=0; N; i++) {
		fgets(buffer, 256, f); 
			readname(i, names, buffer); 
			readmass(i, mass, buffer);
			readcount(i, count, buffer);
		}
	}
}
int maxcount=0; 
int C=0; 
int maxmass=0;  
int m=0; 

for (int i=0; N; i++) { 
	if (mass[i]>maxmass) { 
		maxmass=mass[i]; 
		m=i; } 
	if (count[i]>maxcount) {
		maxcount=count[i];
		C=i; }
       }


	for (int i=0; N; i++) { 
		if (mass[i]=maxmass) 
			printf(" Максимальная масса %s", &name[m]);
		if (count[i]=maxcount) 
			printf(" Максимальное количество %s", &name[C]);
	}

return 0;
}
Код:
// readname.h

#include //


void readname(int i, char* names, char* buffer) { 
	char c;
		while (1) { 
			sscanf_s(buffer, "%c", &c);
                        if (c==' ') break;
			names[i]+=c; 
			}
}
Код:
// readcount.h

#include //

void readcount(int i, int* count, char* buffer) { 
	char c;
	char* temp;
		while (1) { 
			sscanf_s(buffer, "%c", &c);
                        if (c==' ') break;
			temp+=c; 
			}
	
	count[i]=atoi(temp); 
}
Код:
// readmass.h

#include //

void readmass(int i, int* mass, char* buffer) { 
	char c;
	char* temp;
		while (1) { 
			sscanf_s(buffer, "%c", &c);
                        if (c==' ') break;
			temp+=c; 
			}
	
	mass[i]=atoi(temp); 
}

Последний раз редактировалось Fata1ex; 31.05.2009 в 15:01..
 
Ответить с цитированием

  #5  
Старый 30.05.2009, 21:14
Аватар для unfii
unfii
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме:
19399

Репутация: 5
По умолчанию

а можно просто на C?а то преподы порешают
 
Ответить с цитированием

  #6  
Старый 31.05.2009, 00:54
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

я не пойму в чем сложность? ну считал ты всех охотников в массив. отправляй этот массив в функции, считающие лучшего охотника. там простой цикл.
в первой функции переменные типа

Код:
int cur_max_kills = 0;
int best_hunter_index = 0;
if(cur_max_kills < hunters[i].kills){
    cur_max_kills = hunters[i].kills;
    best_hunter_index = i;
}
эти функции, которые вычисляют лучших охотников, вообще мало чем привязаны к си \ с++, ибо не юзают никакие специфичные классы и функции. чистый самопал.
 
Ответить с цитированием

  #7  
Старый 31.05.2009, 18:06
Аватар для unfii
unfii
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме:
19399

Репутация: 5
По умолчанию

ошибка KRNL386.exe при запуске приложения
 
Ответить с цитированием

  #8  
Старый 31.05.2009, 18:23
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

борланд такой борланд.
на самом деле хз что значит эта ошибка, ибо борланд с++ никада не юзал.

Последний раз редактировалось Ra$cal; 31.05.2009 в 18:29..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами. Win7 inlanger С/С++, C#, Delphi, .NET, Asm 6 07.03.2009 13:52
[Голосование] Самая лучшая работа в мире InfernoNet Болталка 15 06.03.2009 12:30
Работа с ТХТ файлами большого размера CrazyStudentS_Mi}{ Soft - Windows 8 01.01.2009 11:33
Работа с файлами в виндах (ошибка?) D3s Windows 9 13.07.2006 06:24



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ