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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 22:03   #1
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию Проблема при считывании из файла

Добрый вечер!!! Возникает проблема при считывании данных из файла!!! Запись идет нормально!!! Вывод осуществляется функцией input_file()...кто знает, подскажите, пожалуйста!!!

Код:
//struct_1.h

#include"iostream"
#include"fstream"
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include"iomanip"
#include <io.h>
using namespace std;
const int L=30;
struct building
{
char name[L];
    char F[L];
    int O;
	char Vs[L];
	char K[L];
    int sh;
	
void input_file();
void outputfile();
void alfsort();
void sohranenie();
void sort_chisl_2();
void sort_chisl_1();
void sort_chisl_3();
void sort_chisl_4();
void add();
void udalenie();
void redaktirovanie();
void input();
void poisk();
void Vivod();
}A;

Код:
//сама программа

#include "struct_1.h"
#include <iostream>
using namespace std;
	

struct spisok
{
	building b;
	spisok* prev;
	spisok* next;
}*start, *last, *p, *s;

void main()
{
	setlocale(0,"");
int pm;
while(1)
{cout<<endl;
cout<<"   1.Чтение из файла "<<endl;
cout<<"   2.Открытие файла "<<endl;
cout<<"   3.Сортировка по алфавиту"<<endl;
cout<<"   4.Запись данных в файл "<<endl;
cout<<"   5.Сортировка по имени "<<endl;
cout<<"   6.Сортировка по количеству стипендии "<<endl;
cout<<"   7.Сортировка по факультету "<<endl;
cout<<"   8.Сортировка по количеству членов семьи "<<endl;
cout<<"   9.Поиск по полю "<<endl;
cout<<"   10.Добавление записи в базу данных "<<endl;
cout<<"   11.Удаление записи из базы данных "<<endl;
cout<<"   12.Вывод "<<endl;
cout<<"   13.Создание новой базы данных "<<endl;
cout<<"   14.Конец работы "<<endl;
cout<<endl<<endl;
cout<<"   Выберите интересующий пункт: ";
cin>>pm;
cout<<endl<<endl;

switch(pm)
{
case 1:A.input_file();break;
case 3:A.alfsort();break;
case 4:A.sohranenie();break;
case 12:A.Vivod();break;
case 13:A.input();break;
case 14:cout<<"Конец работы";
	_getch();
		return;
	default:cout<<"Нет такого пункта";
		_getch();break;
	 }
 }
 
}

// 12//
void building::input()
{
	 const int n=5;
	 char g;
	 int i=1;

	cout<<"Введите данные о студенте:"<<endl;
	while (i<=n){

cout<<i<<".";
cout<<"Имя: ";
cin>>A.name;
cout<<endl;
cout<<"Фамилия: ";
cin>>A.F;
cout<<endl;
cout<<"Отчество: ";
cin>>A.Vs;
cout<<endl;
cout<<"Факультет: ";
cin>>A.K;
cout<<endl;
cout<<"Размер стипендии: ";
cin>>A.O;
cout<<endl;
cout<<"Количество членов семьи: ";
cin>>A.sh;
cout<<endl;

	if (start==NULL ) {
  start=new spisok;
  start->b=A;
  start->prev=NULL;
  start->next=NULL;
  last=start;
 }
 else{
  p=new spisok;
  p->b=A;
  p->next=NULL;
  p->prev=last;
  last->next=p;
  last=p;
 }
++i;
 if (i<=n) {
cout<<"Хотите добавить еще одну запись?\n";
cout<<"Y-да; N-нет\n";
cin>>g;
if (g=='N'){
cout<<"Данные введены\n\n";
getch();
		return;
		_getch();break;
 }else 
cout<<"Данные введены\n\n";
}

	}
}

void building::alfsort()
{
  building t;
  p=start;
 
  while (p!=last){
	   s=p->next;
	  while (s!=NULL){

    
		  if(strcmp(p->b.name, s->b.name)>0)
		  {
      
			  t=p->b;
      
			  p->b=s->b;
      
			  s->b=t;
		  }
		  s=s->next;
	  }
	  p=p->next;
  }

  return;
}

void building::Vivod()
{
	if (start==NULL){
		cout<<"Список пуст\n";
	}
	else{
    p=start;
	cout<<"                   ""Данные студентов\n\n";
	do {
	cout<<"Имя: ";
	cout<<" "<<p->b.name<<endl;
    cout<<"Фамилия: ";
	cout<<" "<<p->b.F<<endl;
	cout<<"Отчество: ";
	cout<<" "<<p->b.Vs<<endl;
	cout<<"Факультет: ";
	cout<<" "<<p->b.K<<endl;
	cout<<"Размер стипендии: ";
	cout<<" "<<p->b.O<<endl;
	cout<<"Количество членов семьи: ";
	cout<<" "<<p->b.sh<<endl<<endl;
	p=p->next;
	} while (p!=0);
  cout<<endl;
	}
}

void building::sohranenie()
{
	char file[L];
	ofstream out;
	char otvet;

	cout<<"Сохранить изменения?"<<endl<<"Да(нажмите Y),Нет(нажмите N)";
   
	cin>>otvet;
   
	if(otvet=='Y')
   
	{
     
		cout<<"Введите директорию, в которую будет произведено сохранение: ";
     		cin>>file;
     	out.open(file);
     	if(out==NULL)
	 	{
       		cout<<"Файл не создан"<<endl<<"Программа будет завершена";
       		_getch();
       		exit(1);
     
		}
	}
	
 p=start;
 while (p!=NULL){
    out<<setw(10)<<p->b.name<<setw(10)<<p->b.F<<setw(10)<<p->b.Vs<<setw(13)<<p->b.K<<setw(13)<<p->b.O<<setw(10)<<p->b.sh<<endl;
 p=p->next;
 }
 cout<<endl;
 
}


void building::input_file() 
	{
		ifstream fin;

		char file[L];
 
		cout<<"Укажите путь к файлу: ";
 
		cin>>file;
 
		fin.open(file);
 
		if(fin==NULL)
 
		{
			cout<<"Файл не может быть открыт";
	 
			_getch();
	 
			exit(1); 
		}
 
		p=NULL;  //------------------------------------------------------------------>по моему
		while(p!=NULL)//------------------------------------------------------------->проблема
		{

			fin>>p->b.name>>p->b.F>>p->b.Vs>>p->b.K>>p->b.O>>p->b.sh;//-------->где-то здесь
            p=p->next; 
		}
 
		fin.close();
	}

Последний раз редактировалось JeyKip; 17.01.2010 в 22:07.
JeyKip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема при выводе с бинарного файла... xVxSeRGxVx Общие вопросы C/C++ 1 13.01.2010 19:08
Проблемы при считывании PE- заголовка nazavrik Общие вопросы C/C++ 0 05.10.2009 20:33
Проблема при чтении из файла Satorin Общие вопросы Delphi 2 17.12.2008 11:32
Проблема при считывании каталога Devochka PHP 2 01.12.2008 10:44
Помогите разобраться, ошибка при считывании из ini файла XATAB Помощь студентам 4 13.02.2007 05:57