PDA

View Full Version : مبتدی: طراحی بانک اطّلاعاتی ساده در C



adameh_bahal
دوشنبه 17 خرداد 1389, 11:00 صبح
من ميخوام با استفاده از سی يه بانک اطّلاعاتی ساده طراحی کنم که که يه سری اطّلاعات از کاربر بگيره و داخل فايل بنويسه
اينو هم نوشتم ولی ايراد داره:


#include<stdio.h>;
#include<conio.h>;
struct personal
{
char name[80];
char personNo;
char salary;
}p;

FILE *f;

void main()
{
int n,i;
printf("How many records do u want to enter?\n");
scanf("%d",&n);
f=fopen("c:/test.txt","a");
for(i=1;i<=n;i++)
{

gets(p.name);
fputs(p.name,f);
gets(p.personNo);
fputs(p.personNo,f);
gets(p.salary);
fputs(p.salary,f);

}
fclose(f);
getch();
}

mehdimdp
دوشنبه 17 خرداد 1389, 14:30 عصر
سلام

شما باید دستور fopen و همچنین flcose رو خارج از حلقه ی for بذارین.
موفق باشی

adameh_bahal
دوشنبه 17 خرداد 1389, 18:54 عصر
سلام

شما باید دستور fopen و همچنین flcose رو خارج از حلقه ی for بذارین.
موفق باشی

سلام
اين کارو هم کردم ولی بازم ارور ميده

tdkhakpur
دوشنبه 17 خرداد 1389, 21:12 عصر
#include<stdio.h>
#include<conio.h>
struct personal
{
char name[80];
long personNo;
char salary;
}p;

FILE *f;

void main()
{
int n,i;
printf("How many records do u want to enter?\n");
scanf("%d",&n);
f=fopen("c:\\test.txt","wb+");
for(i=1;i<=n;i++)
{
printf("\n Enter Name : "); scanf("%s", p.name);
printf("\n Enter personNo : "); scanf("%d", &p.personNo);
printf("\n Enter salary : "); scanf("%c", &p.salary);
fwrite(&p, sizeof(p), 1, f);
}
fclose(f);
getch();
}

adameh_bahal
دوشنبه 17 خرداد 1389, 21:23 عصر
#include<stdio.h>
#include<conio.h>
struct personal
{
char name[80];
long personNo;
char salary;
}p;

FILE *f;

void main()
{
int n,i;
printf("How many records do u want to enter?\n");
scanf("%d",&n);
f=fopen("c:\\test.txt","wb+");
for(i=1;i<=n;i++)
{
printf("\n Enter Name : "); scanf("%s", p.name);
printf("\n Enter personNo : "); scanf("%d", &p.personNo);
printf("\n Enter salary : "); scanf("%c", &p.salary);
fwrite(&p, sizeof(p), 1, f);
}
fclose(f);
getch();
}



fwrite رو به ما آموزش ندادن, کارش چی هست؟ با fputs نميشه برنامه رو نوشت؟
بعد چرا salary رو با %c از کاربر گرفتيد؟

tdkhakpur
دوشنبه 17 خرداد 1389, 22:37 عصر
fwrite رو به ما آموزش ندادن, کارش چی هست؟

تابع فوق کار نوشتن ادرسی از حافظه با اندازه مشخص در فایل را انجام میدهد


با fputs نميشه برنامه رو نوشت؟

چرا میشه این کار را هم انجام داد و لی puts فقط برای کار با رشته هاست برای انواع دیگر مشکل پیدا خواهید کرد.

بعد چرا salary رو با %c از کاربر گرفتيد؟
خب برای اینکه شما تعریفش را از نوع char گرفته بودید.

adameh_bahal
دوشنبه 17 خرداد 1389, 23:06 عصر
چرا میشه این کار را هم انجام داد و لی puts فقط برای کار با رشته هاست برای انواع دیگر مشکل پیدا خواهید کرد.

خب برای اینکه شما تعریفش را از نوع char گرفته بودید.

خب اگه همه متغير ها رو رشته تعريف کنيم باز هم ارور ميده

salary روهم شما يه تک کارکتر در نظر گرفتيد، در صورتی که يا int بايد باشه يا آرايه اي از يه رشته

tdkhakpur
سه شنبه 18 خرداد 1389, 01:03 صبح
خب اگه همه متغير ها رو رشته تعريف کنيم باز هم ارور ميده

salary روهم شما يه تک کارکتر در نظر گرفتيد، در صورتی که يا int بايد باشه يا آرايه اي از يه رشته
عزیزم
برنامه را شما نوشتید برای چی از من ایراد می گیرید.
به پست http://barnamenevis.org/forum/showpost.php?p=1005379&postcount=1 اولتان نگاه کنید خودتان ساختار را تعریف کردید نه من!!!!عجب دوزه زمانه ای شده.

adameh_bahal
سه شنبه 18 خرداد 1389, 09:36 صبح
عزیزم
برنامه را شما نوشتید برای چی از من ایراد می گیرید.
به پست http://barnamenevis.org/forum/showpost.php?p=1005379&postcount=1 اولتان نگاه کنید خودتان ساختار را تعریف کردید نه من!!!!عجب دوزه زمانه ای شده.

حرف شما درسته
من ايردی نگرفتم
شما گفتيد با fputs هم ميشه ولی من گفتم که با fputs نوشتم ارور ميده
همينی که نوشتم رو ميگم