2013-12-18 3 views
0

Я думал, как это сделать «сохранить в файл» всю ночь, но кажется, что удача не была на моей стороне. Я новичок в этом, и я хочу учиться, вот и все. Я из Болгарии, и для тех, кто задается вопросом, что такое «edinen», это ваш гражданин в качестве члена этой страны. (Я до сих пор не знаю, как это объяснить ...)C + + сохранение записей в файл

Вот что я получил (я уже включил «fstream», но я до сих пор не знаю, как его использовать!

#include <iostream> 
#include <stdlib.h> 
#include <fstream> 
using namespace std; 
#define n 30 
int num=0; 
struct uslugi 
{ 
    char name[30]; 
    char surname[30]; 
    char lastname[30]; 
    char illness[30]; 
    long int edinen; 
}grupa[n]; 
void add_record(); 
void show_record(); 
void search_record(); 
void remove_record(); 
void add_record() // FUNCTION - ADD RECORD(S) 
{ 
    system("title Add Record"); 
    int br; 
    cout<<"\n How many pacients do you want to enter?"; 
    cout<<"\n >> "; 
    cin>>br; 
    for(int i=num;i<num+br;i++) 
    { 
     cout<<"\n \t\t ENTERING DATA FOR PACIENT NUMBER - "<<i+1<<endl; 
     cout<<"\n Name:"; 
     cout<<"\n >> "; 
     cin>>grupa[i].Name; 
     cout<<"\n Surname:"; 
     cout<<"\n >> "; 
     cin>>grupa[i].surname; 
     cout<<"\n Lastname:"; 
     cout<<"\n >> "; 
     cin>>grupa[i].lastname; 
     cout<<"\n edinen:"; 
     cout<<"\n >> "; 
     cin>>grupa[i].edinen; 
     cout<<"\n Ill from:"; 
     cout<<"\n >> "; 
     cin>>grupa[i].illness; 
    } 
    num=num+br; 
} 
void show_record() // FUNCTION - SHOW RECORD(S) 
{ 
    if (num==0) 
    { 
     cout<<"\t\t by far there are no pacient at all \n"; 

    } 
    cout<<"\n \t\t\t list with all pacients"<<num<<endl; 
    for(int i=0;i<num;i++) 
    { 
    cout<<"\n Name:"; 
    cout<<"\n >> "<<grupa[i].name; 
    cout<<"\n Surname:"; 
    cout<<"\n >> "<<grupa[i].surname; 
    cout<<"\n Lastname:"; 
    cout<<"\n >> "<<grupa[i].lastname; 
    cout<<"\n edinen:"; 
    cout<<"\n >> "<<grupa[i].edinen; 
    cout<<"\n Ill from:"; 
    cout<<"\n >> "<<grupa[i].illness; 
    cout<<"\n\n"; 

    } 
} 
void remove_record() // FUNCTION - DELETE RECORD(S) 
{ 
    int k,index; 
    for(int i=0;i<num;i++) 
    { 
    cout<<"\n("<<i+1<<") "<<endl; 
    cout<<"Pacient name: "<<grupa[i].name<<endl; 
    cout<<"Surname: "<<grupa[i].surname<<endl; 
    cout<<"Lastname: "<<grupa[i].lastname<<endl; 
    cout<<"edinen: "<<grupa[i].edinen<<endl; 
    cout<<"Ill from: "<<grupa[i].illness<<endl<<endl; 
    } 
    cout<<"Who do you want to delete? \n >> "; 
    cin>>index; 
    for(k=0;k<num;k++) 
    { 
     if(k>=index) 
     { 
      grupa[k].edinen=grupa[k+1].edinen; 
     } 
     if(k==num-1) 
      break; 
     else 
      cout<<"BY FAR THERE IS NO DATA HERE"<<endl; 
    } 
    num--; 

     for (i=0;i<num;i++) 
    { 
    cout<<"Pacient name: "<<grupa[i].name<<endl; 
    cout<<"Surname: "<<grupa[i].surname<<endl; 
    cout<<"Lastname: "<<grupa[i].lastname<<endl; 
    cout<<"edinen: "<<grupa[i].edinen<<endl; 
    cout<<"Ill from: "<<grupa[i].illness<<endl<<endl; 
    } 
} 
void print_count() // FUNCTION - PRINTING 
{ 
    cout<<"\n \t\t\t NUMBER OF PACIENTS - "<<num<<endl; 
    cout<<""<<endl; 
} 


void search_record() // FUNCTION - SEARCHING 
{ 
    int flag=0; 
    long int tempegn; 
    cout<<"\n Type the edinen for the pacient you search: "; 
    cout<<"\n >> "; 
    cin>>tempegn; 
    for (int i=0;i<n;i++) 
     if(tempegn==grupa[i].edinen) 
     { 
    cout<<"Pacient name: "<<grupa[i].name<<endl; 
    cout<<"Surname: "<<grupa[i].surname<<endl; 
    cout<<"Lastname: "<<grupa[i].lastname<<endl; 
    cout<<"edinen: "<<grupa[i].edinen<<endl; 
    cout<<"Ill from: "<<grupa[i].illness<<endl<<endl; 
      flag++; 
     } 
     if (!flag) 
     { 
      cout<<"\n\t PACIENT WITH THAT NAME DOESNT EXCIST \n\n"; 
     } 
} 

void main() // MAIN FUNCTION (MENU) 
{ 
    int choice; 
    do 
    { 
     cout<<"\n\t\t******************* Menu *******************"<<endl; 
     cout<<"\t\t*            *"; 
     cout<<"\n\t\t*   1.Add new pacient     *"; 
     cout<<"\n\t\t*   2.Search for a pacient by edinen *"; 
     cout<<"\n\t\t*   3.Delete pacient     *"; 
     cout<<"\n\t\t*   4.List with all pacients   *"; 
     cout<<"\n\t\t*   5.Exit        *"; 
     cout<<"\n\t\t*            *\n"; 
     cout<<"\t\t************************************************"<<endl; 
     cout<<"\n Type your choice! "; 
     cout<<"\n >> "; 
     cin>>choice; 
     switch(choice) 
     { 
     case 1:{print_count();add_record();break;} 
     case 2:{print_count();search_record();break;} 
     case 3:{print_count();remove_record();break;} 
     case 4:{print_count();show_record();} 
     } 
    } 
    while(choice!=5); 
} 
+0

Я сказал, что я программист? –

+0

Что вы спрашиваете о том, как вы используете семейство 'fstream', иронично, поскольку использование библиотеки 'iostream' для ввода/вывода - это единственное, что делает этот код, который каким-либо образом связывает его с требованием C++ вообще. – WhozCraig

+0

В функции' add_record' у вас есть возможная ситуация с переполнением буфера. Что такое 'num + br' больше, чем 'n'? Тогда вы будет писать сверх того, что выделяется для 'grupa'. –

ответ

0

Я предлагаю вам прочитать книгу или, по крайней мере, некоторую документацию об этом. Кроме того, чтобы понять, как работает этот вид ввода, требуется знание понятий oop. Насколько я заметил, у вас нет такого знания , Я бы посоветовал вам немного поработать с процедурными функциями ввода/вывода из C, например fprintf. Поиск в Google будет содержать много ресурсов о них, и их довольно легко понять, по крайней мере, по сравнению с теми, что есть на C++, такими как те, которые вы

Чтобы ответить на ваш вопрос, я попытаюсь объяснить, как достичь того, чего вы хотите. Обратите внимание, что это очень упрощенное объяснение, а не 100% точное.

Во-первых, вам нужно открыть файл и создать I/O потока, используя ifstream для входных файлов или ofstrsam для выходных файлов:

ifstream п ("input_filename");

ofstream г ("выходной_файл);

После создания F и/или г (они оба не являются REQUIED Кроме того, ф и г являются просто случайными именами.), Вы можете использовать их таким же образом, вы используете cin и cout, в этом случае, так как f для ввода, его следует использовать как cin.

+0

Ну, это '' После того, как вы создали f и/или g (они не оба требуются. Кроме того, f и g - просто случайные имена), вы можете использовать их в так же, как вы используете cin и cout, в этом случае, поскольку f для ввода, его следует использовать как cin.'' - это то, что я искал все время, которое я думаю. THANK YOU PAUL92 Спасибо за ответы, которые некоторые пытались дать мне! Я предполагаю, что проблема не зная, как это сделать, на самом деле не все, но задает глупые вопросы! Моя вина! –

+0

Я рад, что это помогло. Пожалуйста, подумайте над тем, чтобы принять и/или принять мой ответ. Вот как можно сказать спасибо в сети stackexchange. – Paul92

Смежные вопросы