Her projemde tekrardan öğrenmek zorunda kaldığım bir durumu sizlerle paylaşmak istiyorum: C++ ta bir dosyadan verileri okumak.
Aslında çok basit bir olay. Satırları karakter karakter okuyaramak, oluşan katarı vir string e atamak.
Ben bu işlem için ifstream kullanıyorum. Örnek kodu aşağıda bulabilirsiniz:
void readData( string fileName, int *a )
{
cout << "file to read: " << fileName << "\n";
char* ch = (char *)malloc(sizeof(char)*(fileName.length()+1));
strcpy(ch, fileName.c_str());
ifstream File(ch); // ifstream fonksiyonu sadece karakter katarı kabul
// ettiğinden fileName ‘i karakter katarına çevirdik
if( File.fail() )
{
perror("error"); // Eğer dosyaya bağlanmada sorun yaşarsa
exit ( EXIT_FAILURE ); // hata verecek
}
string line;
int num;
int i = 0;
while( getline( File, line ) ) //getline fonksiyonu ifstream ile sağlanmakta
{
if( isdigit( line[0] ) ) //Benim en son kullandığım örnekte verilerim
{ //sayı olduğu için böyle bir kontrol kulladım.
num = atoi( line.c_str() );
a[i]=num; // Okuduğumuz satırı interger veri tipine
i++; // çevirerek dizimize kaydediyoruz.
}
}
File.close();
}
C++
ifstream