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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2016, 20:22   #1
Joesidorov
Пользователь
 
Регистрация: 09.12.2015
Сообщений: 26
По умолчанию Работа с файлами

Привет всем,

поля в структуре:

1. Тип компьютера;
2. Год выхода;
3. Цена;

пользовател вводит Год, и ему показывает какие компьютера в этом году вышли (пользовател сам ранее заполняет несколько вариантов). Помогите пожалуйста разобраться что неправильно. Спасибо!!!

Код:
#include 
using namespace std;

struct Computers
{
char brand[20];
int year;
int realesedYear;
double price;

};

char* filename = "PC.dat";

void enter(Computers *);
void print(Computers *, int);
void read_from_user_and_save_to_file();
void read_from_file_and_show_to_user();

void main()
{
read_from_user_and_save_to_file();
read_from_file_and_show_to_user();
system("pause");
}

void enter(Computers *s)
{
cout << "Enter Computer brand: "; cin >> s->brand;
cout << "Enter Computer realesed year: "; cin >> s->year;
cout << "Enter Computer price: "; cin >> s->price;

cout << "Enter Computer realesed Year : "; cin >> s->realesedYear;

}

void print(Computers *s, int n)
{
for (int i = 0; i < n; i++)
printf("Computers in realesed Year: %s, Computer brand: %s", Computer realesed year: %s, Computer price: %s" s[i].realesedYear, s[i]brand, s[i]year, s[i]price);
}

void read_from_user_and_save_to_file() {
int n1; cout << "Enter count of Computers: "; cin >> n1;

Computers* st1 = new Computers[n1];

for (int i = 0; i < n1; i++) enter(&st1[i]);
print(st1, n1);

FILE * fp; fopen_s(&fp, filename, "wb");
fwrite(st1, sizeof(Computers), n1, fp); fclose(fp);
}

void read_from_file_and_show_to_user() {
FILE * fp;
fopen_s(&fp, filename, "rb");
fseek(fp, 0, SEEK_END);
int fsize = ftell(fp);

int n2 = fsize / sizeof(Computers);
Computers* st2 = new Computers[n2];
fseek(fp, 0, SEEK_SET);

fread(st2, sizeof(Computers), n2, fp);

print(st2, n2);
}
Joesidorov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
C# Работа с файлами. ProgramNet Помощь студентам 0 15.12.2013 18:43
работа с файлами rinoolik Паскаль, Turbo Pascal, PascalABC.NET 3 12.12.2012 09:53
Работа с файлами Senator16 C++ Builder 7 15.01.2011 12:43
работа с файлами 4thWing Общие вопросы C/C++ 5 12.04.2010 01:04