PDA

View Full Version : ذخيره سازي يك ركورد در فايل



neda tanha
پنج شنبه 08 دی 1390, 20:18 عصر
سلام دوستان
من مي خوام يه برنامه بنويسم كه يك ركورد رو از فرودي بگيره بعد تو يه فايل تكست ذخيره كنه
ميشه راهنمايي كنيد يا اگه سورسي داريد بزاريد
سرچ كردم چيز مشابه نديدم :ناراحت:
من اين رو نوشتم ولي مي دونم اشكال داره :متفکر:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>

struct student
{
char id[10];
char name[20];
char family[20];
char father[20];
int num;
int avege;
struct student *next;
struct student *prior;
}listS;
struct student *starts;
struct student *lasts;


void sabtenam_new_student()
{
FILE *stu;
stu=fopen("C:\\Text.txt","w+");
if (("stu=fopen("C:\\Text.txt","w+"))==NULL) {printf("Error opening file"); exit(1);
struct student *temp;
temp = (struct student *) malloc(sizeof(listS));

clrscr();
cout << "student id : "; cin >> temp->id;
cout << "name : "; cin >> temp->name;
cout << "family : "; cin >> temp->family;
cout << "father : "; cin >> temp->father;
cout << "shenasname : "; cin >> temp->num;
cout << "moadel : "; cin >> temp->avege;
cout << "\n";
cout << "\n\npress any key to continue...";
fwrite(stu,"save %c",id);
fwrite(stu,"save %c",name);
fwrite(stu,"save %c",family);
fwrite(stu,"save %c",father);
fwrite(stu,"save %c",num);
fwrite(stu,"save %c",avege);
getch();
}

void main()
{

char ch;
if (("stu=fopen("C:\\Text.txt","w+"))==NULL) {printf("Error opening file"); exit(1);
for ( ;; )
{
clrscr();

cout << "-------------------\n";
cout << "D) Sabtenam new student\n\n";
cout << "-------------------\n";
cout << "X) Exit\n";
cout << "-------------------\n";
cout << "COMMAND==> ";
ch = getche();
switch ( ch )
{
case 'd':
case 'D': sabtenam_new_student(); break;
case 'x':
case 'X': exit(0);
}
}
}

pe32_64
پنج شنبه 08 دی 1390, 22:04 عصر
تصحیح شد(در Turbo c++ 3):

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>

struct student
{
char id[10];
char name[20];
char family[20];
char father[20];
int num;
int avege;

}listS;

void sabtenam_new_student()
{
FILE *stu;
struct student *temp;

if ((stu=fopen("C:\\Text.txt","a"))!= NULL)
{

temp = (struct student *) malloc(sizeof(listS));
clrscr();
cout << "student id : "; cin >> temp->id;
cout << "name : "; cin >> temp->name;
cout << "family : "; cin >> temp->family;
cout << "father : "; cin >> temp->father;
cout << "shenasname : "; cin >> temp->num;
cout << "moadel : "; cin >> temp->avege;
fprintf(stu,"student id : %s,name : %s,family : %s,father : %s,shenasname :%d,moadel : %d\n"
,temp->id,temp->name,temp->family,temp->father,temp->num,temp->avege);
fclose(stu);
cout << "saved in c:\\text.txt\n";

}
getch();
}

void main()
{
char ch;
for ( ;; )
{
clrscr();

cout << "-------------------\n";
cout << "D) Sabtenam new student\n\n";
cout << "-------------------\n";
cout << "X) Exit\n";
cout << "-------------------\n";
cout << "COMMAND==> ";
ch = getche();
switch ( ch )
{
case 'd':
case 'D': sabtenam_new_student(); break;
case 'x':
case 'X': exit(0);
}
}
}