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

не открывается фаил - C++

Восстановить пароль Регистрация
 
Iulea
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 4
16.01.2011, 23:07     не открывается фаил #1
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
#include<iostream>
using namespace std;

struct queue
{
char disk_name[50];
int year;
int last;
char artist[50];

queue *left;
queue *right;
};
int z;
FILE *fa;
struct queue temp;
//Objavlenie peremennih

int counter=0;
char input_disk_name[50];
int input_year;
int input_last;
char input_artist[50];
int direction;
int sorted;

//Objavlenie ukazatelej
queue * lend;
queue * rend;

//Funkcija sohranenija v fail
void save_change (queue *q)
{
char path[51];
int count=0;
system("cls");
printf ("\nVvedite imja i rashirenie faila\n");
scanf ("%s", &path);
fa=fopen(path, "w");
for (int i=1;i<=counter;i++)
{
fprintf (fa,"%s %s %d %d\n", q->disk_name,q->artist,q->year,q->last);
q=q->right;
}
fclose(fa);
}

// Otkritie faila

void load_file (queue *q)
{
char path[51];
int count=0;
system("cls");
printf ("\nVvedite put', imja i rashirenie faila\n");
scanf ("%s", &path);
fa=fopen(path,"r");
for (int i=1;i<=counter;i++)
{
fscanf (fa,"%s %s %d %d ",q->disk_name,q->artist,q->year,q->last);
q=q->right;
}
fclose(fa);
}


void queue_print(queue * pt)
{

cout<<"Nazvanie disca :"<<pt->disk_name<<endl;
cout<<"God vipuska :"<<pt->year <<" god"<<endl;
cout<<"Prodoljitelnost :"<<pt->last <<" min"<<endl;
cout<<"Ispolnitel :"<<pt->artist <<endl;
cout<<endl;

}
//Dobavlenie novogo elementa
void Add (char * disk_name,int year,int last,char * artist,int direction)
{

queue * pt;
queue * current;

if(!sorted)

pt=(queue*) malloc (sizeof(queue));
strcpy(pt->disk_name, disk_name);
strcpy(pt->artist, artist);
pt->year=year;
pt->last=last;

pt->left=NULL;
pt->right=NULL;

if((lend==NULL) && (rend==NULL))
{
lend=pt;
rend=pt;
}
else
{
if(!(direction))
{
current=lend;
current->left=pt;
pt->right=current;
lend=pt;
}
else
{
current=rend;
current->right=pt;
pt->left=current;
rend=pt;
}
}
counter++;

}

//Raspechatka napravlenija
void printout(int direction)
{
queue * current;

if((lend==NULL) && (rend==NULL))
{
cout<<"Ochered' pusta";
getch();
return;
}

if(direction)
{
current=rend;
while(current!=NULL)
{
queue_print(current);
current=current->left;
}
}
else
{
current=lend;
while(current!=NULL)
{
queue_print(current);
current=current->right;
}
}

getch();
}

//Poisk elementa s godom ne menie vvedennogo
void search_year(int year, int direction)
{
queue * current;

if ((lend==NULL) && (rend==NULL))
{
cout<<"Ochered' pusta";
getch();
return;
}

if(direction)
{
current=rend;
while(current!=NULL)
{
if((current->year)>=year) queue_print(current);
current=current->left;
}
}
else
{
current=lend;
while(current!=NULL)
{
if((current->year>=year)) queue_print(current);
current=current->right;
}
}
getch();
}


//Izmenenie zadannogo elementa

void queue_change(int direction, char * disk_name)
{
queue * current;

if((lend==NULL) && (rend==NULL))
{
cout<<"\nOchered' pusta";
getch();
return;
}
if(direction)
{
current=rend;
while(current!=NULL)
{
if(!(strcmp(current->disk_name, disk_name)))
{
queue_print(current);
cout<<endl<<endl;
cout<<"Vvedite novie dannie: "<<endl;
cout<<"--------------------"<<endl;
cout<<"Vvedite nazvanie disca : "; cin>>input_disk_name;
cout<<"Vvedite god vipuska : "; cin>>input_year;
cout<<"Vvedite prodoljitelnost' : "; cin>>input_last;
cout<<"Vvedite imja artista : "; gets(input_artist);
strcpy(current->disk_name, input_disk_name);
strcpy(current->artist, input_artist);
current->year=input_year;
current->last=input_last;
z++;

cout<<"Dannie izmeneni";
getch();
}
current=current->left;
}

}
else
{
current=lend;
while(current!=NULL)
{
if(!(strcmp(current->disk_name, disk_name)))
{
queue_print(current);
cout<<endl<<endl;
cout<<"\nVvedite novie dannie: "<<endl;
cout<<"--------------------"<<endl;
cout<<"Vvedite nazvanie disca : "; gets(input_disk_name);
cout<<"Vvedite god vipuska : "; cin>>input_year;
cout<<"Vvedite prodoljitelnost' : "; cin>>input_last;
cout<<"Vvedite imja artista : "; gets(input_artist);
strcpy(current->disk_name, input_disk_name);
strcpy(current->artist, input_artist);
current->year=input_year;
current->last=input_last;

cout<<"\nDannie izmeneni";
getch();
}
current=current->right;
}
}
}

//Sortirovka


void queue_sort_advanced(queue *ptr)
{
for(int j=0;j<counter-1; j++)
{
ptr=lend;
for(int i=0;i<counter-1;i++)
{
if(ptr->year > ptr->right->year)
{
//======================================
strcpy(temp.disk_name, ptr->disk_name);
strcpy(temp.artist, ptr->artist);
temp.year=ptr->year;
temp.last=ptr->last;

//=======================================
strcpy(ptr->disk_name, ptr->right->disk_name);
strcpy(ptr->artist, ptr->right->artist);
ptr->year=ptr->right->year;
ptr->last=ptr->right->last;

//=======================================
strcpy(ptr->right->disk_name, temp.disk_name);
strcpy(ptr->right->artist, temp.artist);
ptr->right->year=temp.year;
ptr->right->last=temp.last;
//=======================================
}
ptr=ptr->right;
}
}
sorted++;
}

void queue_sort()
{
if((lend==NULL) && (rend==NULL))
{
cout<<"\nOchered' pusta";
getch();
return;
}

else
{
queue_sort_advanced(lend);
cout<<"\nOchered' uspeshno otsortirovana: "<<endl;
printout(direction);

}
}


//Menu:
int main()
{
z=0;
for(;
{
system("cls");
cout<<"Menu:\n"<<endl;
cout<<"\n1. Dobavlenie elementa v ochered'"<<endl;
cout<<"2. Raspechatka ocheredi"<<endl;
cout<<"3. Vivod elementa s godom ne menie vvedennogo"<<endl;
cout<<"4. Izmenenie zadannogo elementa"<<endl;
cout<<"5. Otsortirovat'"<<endl;
cout<<"6. Sohranit' izmenenija'"<<endl;
cout<<"7. Otkritie faila"<<endl;
cout<<endl<<endl<<"0. Exit\n\n";

char kb=getch();
switch(kb)
{
case'1':
{
system("cls");

cout<<"\n\nVvedite nazvanie diska : "; gets(input_disk_name);
cout<<"Vvedite god vipuska : "; cin>>input_year;
cout<<"Vvedite prodoljitelnost' : "; cin>>input_last;
cout<<"Vvedite imja artista : "; gets(input_artist);
cout<<endl<<"S kakoj storoni dobavit'?(0=right, 1=left)";
cin>>direction;

Add(input_disk_name, input_year, input_last, input_artist,direction);
cout<<"Element uspeshno dobavlen";

getch();
}
break;

case'2':
{
system("cls");
cout<<endl<<"S kakoj storoni raspechatat'?(0=left, 1=right) ";
cin>>direction;
printout(direction);
}
break;

case '3':
{
system("cls");
cout<<"Vvedite god vipuska: ";
cin>>input_year;
cout<<endl<<"S kakoj storoni raspechatat'?(0=left, 1=right) ";
cin>>direction;
search_year(input_year, direction);
}
break;


case '4':
{
system("cls");
cout<<"Vvedite nazvanie alboma: "; gets(input_disk_name);
cout<<endl<<"S kakoj storoni raspechatat'?(0=left, 1=right) ";
cin>>direction;
queue_change(direction, input_disk_name);
}
break;
case '5':
{
system("cls");
queue_sort();
getch();

}
break;
case '6':
{
save_change(lend);break;
case '0':return 1;
}
break;
case '7':
system("cls");
load_file(lend);
getch();
break;


}
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 23:07     не открывается фаил
Посмотрите здесь:

Дописать фаил C++
текстовый фаил C++
C++ Запись в фаил
не находит фаил C++
фаил в функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
16.01.2011, 23:09     не открывается фаил #2
думаете это кто-то смотреть будет?
хоть бы в теги заключили
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
16.01.2011, 23:21     не открывается фаил #3
Iulea, да и за4ем тут весь код??? согласен с sandye51 - все посмотрят и 4итать не будут...
выбирите строки, где вы пытаетесь открыть файл. вот тогда можно будет и подумать )
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
17.01.2011, 00:08     не открывается фаил #4
У меня при открытии файла не выдаёт ошибку, всё нормально, если вы выбираете 7 пункт меню (открыть файл) и вводите с:\\mefile.txt, тоу вас этот файл(mefile.txt) уже должен быть создан на диске с. Иными словами мы прописываем путь к файлу, который уже существует.
Yandex
Объявления
17.01.2011, 00:08     не открывается фаил
Ответ Создать тему
Опции темы

Текущее время: 03:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru