Aralık 0904

C++ ile Dosyadan Okuma

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(); 
}
Tags: | Categories: C++