PDA

Tam Sürümünü Görmek İçin : struct ile dosyaya yazılanları okumak[yardım]


portalturks
07/06/2008, 15:49
#include <iostream>
#include <fstream>
using namespace std;
struct deneme{
char isim[30];
char soyisim[30];
}a,b;
char bosluk=' ';
int main()
{
const int MAX=100;
char buffer[MAX];
ofstream dosya("den.txt");
cin>>a.isim;
cin>>a.soyisim;
dosya<<a.numara<<bosluk<<a.isim<<bosluk<<a.soyisim<<bosluk<<"\n";
cin>>b.isim;
cin>>b.soyisim;
dosya<<b.numara<<bosluk<<b.isim<<bosluk<<b.soyisim<<bosluk<<"\n";
ifstream dosya1("den.txt");
while(!dosya1.eof())
{
dosya1.getline(buffer,MAX);
cout<<buffer;
cout<<endl;
}


system ("pause");
return 0;
}
Örneğin burada dosyaya yazabiliyorum, ama okuyamıyorum. Okusamda
dosya>>isim>>soyisim;
cout<<isim<<soyisim;

kullandığımdan dolayı, sadece ilk satırı okuyabiliyor :( Problem nediR?
get mi kullanmalıyım?


acehreli
08/06/2008, 09:42
Ayni dosyayi 'dosya' olarak zaten acik tuttugun icin olmuyor. En iyisi yazmayi ve okumayi ayri fonksiyonlarda yapmak olacagi icin, bir fonksiyon icinde olusturdugun ofstream sonlaninca digerinde ifstream olarak bastan acarsin.

Seninki gibi main icinde olmasini istersen, ofstream'i once elle kapatman (close) gerekir:


dosya.close();

ifstream dosya1("den.txt");
while(dosya1)
{
deneme okunan;
dosya1 >> okunan.isim >> okunan.soyisim;

if (dosya1)
{
cout << okunan.isim << ' ' << okunan.soyisim << '\n';
}
}


Ali