Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Помогите пожалуста разобраться с программой!!!
Суть программы такова: Пользователю выводится окно с вариантами выбора: нажать 1 для создания нового аккаунта(где он заполняет свои данные,после чего эти данные записываются в фаил) нажать 2 для открытия аккаунта(где должна открываться информация из файла и выводиться на экран).Проблема при выводе информации из файла на экран.

Код состоит из трех взаимоподключаемых файлов:

1й Файл

#include"functions.h"
#include<iostream>
#include<stdio.h>

using namespace std;
void function1(user *c,int size);
void function2(user &l);

int main()
{
user arr[10]={};
int l;
cout<<'\t'<<'\t'<<'\t'<<'\t'<<"WELCOME TO OUR BASE"<<endl<<endl<<"Create New Account(1)"<<'\t'<<'\t'
<<'\t'<<'\t'<<'\t'<<"Enter in your Account(2)"<<endl<<endl;
cin>>l;
if(l=1)
{
function2(arr[0]);
FILE *ptr;
ptr=fopen("Base.bin","wb");
fwrite(&arr[0],sizeof(user),1,ptr);
fclose(ptr);
}
if(l=2)
{
int k;
FILE *ptr;
ptr=fopen("Base.bin","rb");
rewind(ptr);
fread(&arr[0],sizeof(user),1,ptr);
//Здесь надо что-то поставить чтобы выводилось содержимое фаила на экран//
fclose(ptr);
}

return 0;
}

2й Фаил с функциями

#include"structures.h"
#include<iostream>

using namespace std;

void function1(user *c,int size)
{ for(int i=0;i<size;i++)
{
cin>>c[i].name;
cin>>c[i].family;
cin>>c[i].father;
cin>>c[i].sex;
cin>>c[i].mail;
cin>>c[i].login;
cin>>c[i].password;
}
}
void function2(user &c)
{
cout<<"Enter Your Name";
cin>>c.name;
cout<<"Enter Your Family";
cin>>c.family;
cout<<"Enter Your Father";
cin>>c.father;
cout<<"Choose your Sex";
cin>>c.sex;
cout<<"Enter Your Mail";
cin>>c.mail;
cout<<"Enter Your Login";
cin>>c.login;
cout<<"Enter Your Password";
cin>>c.password;

}

3й Фаил со структурами

struct date
{
int registration,last_visit;
};
struct time_
{
int time;
};
struct user
{
char name[30];
char family[30];
char father[30];
char password[30];
char login[30];
char mail[30];
bool sex;
time_ _time;
date _date;
};

Занимаюсь программированием на Си полтора месяца так что не судите код строго. Заранее благодарен за помощь.

1 | Автор: Pretor | 2011-02-20, 19:30 | Изменено: Pretor - Вс, 2011-02-20, 19:33   |  Репутация: [ + 0 ]
Чуток переписал твою прогу вот что получилось

основной файл

Code
#include "stdafx.h"
#include "functions.h"

using namespace std;  

int main()  
{    
  int l;  

  cout<<"WELCOME TO OUR BASE"<<endl
   <<endl<<"Create New Account(1)"
   <<'\t'<<"Enter in your Account(2)"
   <<endl;  

  cin>>l;
  cout<<endl;

  switch (l)
  {
  case 1:
   func_CreateAccount();  
   break;
  case 2:
   func_OpenAccount();
   break;
  }  

  cin>>l;
  return 0;  
}

файл с описанием функций


Code

#include "stdafx.h"
#include "structures.h"

void function1 (user *c,int size);
void function2(user &c);
bool func_CreateAccount();
bool func_OpenAccount();
void func_PrintAccount();

using namespace std;

user arr;
FILE *ptr;

void function1 (user *c,int size) {  

  for(int i=0; i<size; i++) {  
   cin>>c[i].name;  
   cin>>c[i].family;  
   cin>>c[i].father;  
   cin>>c[i].sex;  
   cin>>c[i].mail;  
   cin>>c[i].login;  
   cin>>c[i].password;  
  }  
}  

void function2(user &c) {  
  cout<<"Enter Your Name"<<"\t";  
  cin>>c.name;  

  cout<<"Enter Your Family"<<"\t";  
  cin>>c.family;  

  cout<<"Enter Your Father"<<"\t";  
  cin>>c.father;  

  cout<<"Choose your Sex"<<"\t";  
  cin>>c.sex;  

  cout<<"Enter Your Mail"<<"\t";  
  cin>>c.mail;  

  cout<<"Enter Your Login"<<"\t";  
  cin>>c.login;  

  cout<<"Enter Your Password"<<"\t";  
  cin>>c.password;
}

bool func_CreateAccount()
{  
  function2(arr);  

  FILE *ptr;

  if ( ( ptr = _wfopen(L"Base.bin", L"w+") ) != NULL ){    
   fwrite(&arr, sizeof(user), 1, ptr);     
   return  true;
  }else{
   wprintf(L"Error Open File");
   return false;
  }

  fclose(ptr);  
}

bool func_OpenAccount()
{
  if ( (ptr = _wfopen(L"Base.bin", L"r")) != NULL)
  {
   rewind(ptr);  
   fread(&arr, sizeof(user), 1, ptr);

   func_PrintAccount();

   return true;
  }else{
   return false;
  }

  fclose(ptr);  
}

void func_PrintAccount(){
  cout<<arr.name<<endl;  
  cout<<arr.family<<endl;  
  cout<<arr.father<<endl;  
  cout<<arr.sex<<endl;  
  cout<<arr.mail<<endl;
}

надеюсь что помог)))

2 | Автор: Se_jay | 2011-02-21, 00:04 | Изменено: Se_jay - Пн, 2011-02-21, 00:32   |  Репутация: [ + 0 ]
2 | Автор: Se_jay | 2011-02-21, 00:04 | Изменено: Se_jay - Пн, 2011-02-21, 00:32   |  Репутация: [ + 0 ]
Se_jay Спасибо огромное, вообще по красоте, даже не ожидал.
3 | Автор: Pretor | 2011-02-21, 00:54   |  Репутация: [ + 0 ]
  • Страница 1 из 1
  • 1
Поиск: