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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как задать точность округления в среде разработки? http://www.cyberforum.ru/cpp-beginners/thread229903.html
Недавно столкнулся с тем, что любая переменная вещественного типа при инициализации и выводе этой же переменной на экран отображается лишь с шестью знаками. К примеру, если присвоить х = 10900.0905, то на экран выведется 10900.1 Интереса ради, завел переменную y=10900 и вычел ее из x (все переменные типа float). И, что бы вы думали, получилось? z=x-y = 0.0908203 Хотя результат уже почему-то до 6...
C++ Рекурсия: Написать функцию умножения двух чисел, используя только операцию сложения Написать функцию умножения двух чисел, используя только операцию сложения. (помогите с решением) http://www.cyberforum.ru/cpp-beginners/thread229898.html
прога для интерпретации #define C++
надо реализовать простой препроцессор языка С, способный выполнять замены в тексте, заданные с помощью директивы #define (в том числе нерекурсивные макросы)
в чём ошибка C++
void load_file (queue *q) { char path; 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++) {
C++ перебор подмножеств http://www.cyberforum.ru/cpp-beginners/thread229884.html
подскажите, пожалуйста, как сделать перебор подмножеств? это для решения задачки http://acm.timus.ru/problem.aspx?space=1&num=1005
C++ С++: массив, фигуры, функция Привет всем!!! Помогите пожалуйста, кто хоть немного разбирается в С++. Не могу решить задачи, потому что этот язык программирования не поддается моему пониманию! Вот задачи: 1) Считать из файла «а.dat» двухмерный массив 4х4. Вывести на экран массив и все значения массива равные 0. 2) Реализовать на языке С++ классы геометрических фигур (отрезок, треугольник, окружность). Для всех фигур... подробнее

Показать сообщение отдельно
Iulea
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 4
16.01.2011, 23:07     не открывается фаил
#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;


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