rezaheidarida
چهارشنبه 25 خرداد 1390, 01:28 صبح
سلام...
چند تا مشکلی دارم!
برنامه زیر را بببنید!
1- چرا با اینکه ما پنج تا struct name وارد می کنیم و در فایل ذخیره می کنیم
شمارشگر i می گه شش تا struct name در فایل موجود هست؟
2- چرا وقتی می خواییم تمامی struct name های موجود در فایل را چاپ کنیم
اخری دوبار تکرار میشه؟
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
struct name{
char A[10] , B[10];
};
int main() {
FILE *io;
name po;
int i=0;
io = fopen ("112.dat" ,"w+b");
for (int j=0 ; j<5 ; j++){
cout<<"First name : ";
gets (po.A);
cout<<endl;
cout<<"last name : ";
gets (po.B);
cout<<endl;
fwrite(&po, sizeof(name ),1,io) ;
}
fclose (io);
io = fopen ("112.dat" ,"rb");
while (!feof(io)){
fread(&po, sizeof(name ),1,io) ;
i++;
}
cout<<i<<endl;
fclose (io);
io = fopen ("112.dat" ,"rb");
while (!feof(io)){
fread(&po, sizeof(name ),1,io) ;
cout<<po.A<<endl;
cout<<po.B<<endl;
}
fclose (io);
getch();
return 0 ;
}
چند تا مشکلی دارم!
برنامه زیر را بببنید!
1- چرا با اینکه ما پنج تا struct name وارد می کنیم و در فایل ذخیره می کنیم
شمارشگر i می گه شش تا struct name در فایل موجود هست؟
2- چرا وقتی می خواییم تمامی struct name های موجود در فایل را چاپ کنیم
اخری دوبار تکرار میشه؟
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
struct name{
char A[10] , B[10];
};
int main() {
FILE *io;
name po;
int i=0;
io = fopen ("112.dat" ,"w+b");
for (int j=0 ; j<5 ; j++){
cout<<"First name : ";
gets (po.A);
cout<<endl;
cout<<"last name : ";
gets (po.B);
cout<<endl;
fwrite(&po, sizeof(name ),1,io) ;
}
fclose (io);
io = fopen ("112.dat" ,"rb");
while (!feof(io)){
fread(&po, sizeof(name ),1,io) ;
i++;
}
cout<<i<<endl;
fclose (io);
io = fopen ("112.dat" ,"rb");
while (!feof(io)){
fread(&po, sizeof(name ),1,io) ;
cout<<po.A<<endl;
cout<<po.B<<endl;
}
fclose (io);
getch();
return 0 ;
}