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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Niklitel
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 17
#1

преобразование текстового файла в двоичный, чтение данных из двоичного с++ - C++

06.03.2014, 16:19. Просмотров 250. Ответов 0
Метки нет (Все метки)

Пожалуйста помогите разобраться, не могу понять почему не работает программа.
Нужно преобразовать текстовый файл в двоичный и читать данные из двоичного.

Сама задача такова :
На основе сводной экзаменационной ведомости, включающей фамилии студентов и оценки по дисциплинам (математика, физика, программирование, история), подсчитать средний балл для каждого студента и вывести:
Название дисциплины, по которой получено наибольшее количество "пятерок", и фамилии студентов, получивших по этому предмету "двойку".


Текстовый файл:
3
Hopi 2 3 3 5
Jkol 5 5 5 5
dfkjgkl 2 2 2 2


Код
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <fstream>
const int p = 15, k=4;
struct dannye
{   char fam [p];
    int oc[k];
};
int main ()
{
	setlocale(LC_ALL, "rus");
	using namespace std;
	int kol5[k] = {NULL};
	int n;
	char *predmet[] = {"MATEM", "PROGA","ISTOR","FIZIKA"};
    FILE *in,*out; 
	in = fopen ("студенты.txt", "r" ); 
	out = fopen ( "fileb.dat", "w+b" );
 	fscanf (in, "%d",&n);
	fwrite ( &n, sizeof(n), 1, out );
	dannye* dan = new dannye [n];
	int i = 0;
	while ( fscanf (in,"%s", &dan[i].fam) != EOF )
	{
		for (int j=0; j<k; j++){
			fscanf ( in, "%d", &dan[i].oc[j] );
		}		 		
		i++;
		fwrite ( &dan, sizeof(dannye), 1, out );
	}
	memset(dan, 0, sizeof(dannye)*n);
	fclose (in);
	fclose (out);
	out = fopen ( "fileb.dat", "r+b");
	fread ( &dan, sizeof(dannye), n+1, out );
	for (int i=0; i<n; i++){
		float s=0;
		for (int j=0; j<k; j++) {
			s=s+dan[i].oc[j];
       }
		s=s/k;
		if (i!=0) {
		cout<<"Студент  "<<dan[i].fam<<"  средний балл  = "<<s<<endl;
		}
	}
	int max=0, jmax, d=5, h=2,s=0;	
	for (int j=0; j<k; j++) {
		s=0;
		for (int i=0; i<n; i++) {
			if (dan[i].oc[j]==d) {
				s=s+1;
				kol5[j]=s;
			}
		}
		if (max<kol5[j]) {
		max=kol5[j];
		jmax=j;
		}
	}
	for (int j=0; j<k; j++) {		
			if(max==kol5[j]) {
				cout<<"Предмет, по которому набрано больше пятерок  "<<predmet[j]<<endl;
				for (int i=0; i<n; i++) {
					if(dan[i].oc[j]==h) {
						cout<<"Фамилия студента, получившего двойку по данному предмету:  "<<dan[i].fam<<endl;
					}
				}
			}
	}	
	getch ();
	return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 16:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос преобразование текстового файла в двоичный, чтение данных из двоичного с++ (C++):

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt; using namespace std; struct...

Чтение данных из текстового файла - C++
Помогите пожалуйста! Питаюсь создать консольную програму и никак не пойму как прочесть из файла, ну например: есть файл noname.txt и в ньом...

Чтение данных из текстового файла - C++
здравствуйте. программа считывает координаты, но как мне считать строки, которые чередуются с координатами? помогите пожалуйста считать...

Чтение данных из текстового файла в структуру - C++
Добры вечер новичках и профессионалам! Изучаю C++ только четыре месяца и сейчас разбираюсь с записью из файла (библиотека fstream). И...

Как правильно реализовать чтение данных из текстового файла? - C++
char buff; ifstream sho; sho.open(&quot;Мафіни.txt&quot;); if (!sho.is_open()) { cout &lt;&lt; &quot;Error!!!\n&quot;; } else { cout &lt;&lt;...

Чтение текстового файла и его данных в разные переменные - C++
не работал еще с файлами в плюсах, только в чистом си... никак не соображу как считать данные из файла, вот например такой файл ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 16:19
Привет! Вот еще темы с ответами:

Из заданного двоичного файла создать новый двоичный файл, у которого байты переставлены в обратном порядке - C++
7. По заданному двоичному файлу с произвольным содержанием создать новый двоичный файл, у которого байты переставлены в обратном...

Конвертирование текстового файла в двоичный - C++
Здравствуйте! У меня возникла проблема при конвертировании текстового файла в двоичный. Помогите, пожалуйста, найти ошибку в коде: extern...

Чтение двоичного файла - C++
Есть файл, без типа,просто файл. Содержит набор чисел (размером по 4 б - int ) нужно его прочитать. Пишу: FILE *fp; if ((fp =...

Запись и чтение из двоичного файла - C++
Программа должна считать из текстового файла массив и размерность, далее записать это все в двоичный файл и посчитать сумму между...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru