2016-03-30 19 views
1

Projenin bir parçası olan projenin silme bölümünde yer alan bir projede çalışıyorum; Ben dışındaki tüm kişileri yazdıktan sonra genel telefon rehberi dosyasını silmek çalışıyorumyeniden adlandırın ve bir dosyayı silin cpp

 void pbook::del(){ 
    cout<<"Enter Id(Be sure to Enter with #) or a full info of a Contact to Delete:"<<endl; 
    string ds,line,deltemp; 
    cin>>ds; 
    ifstream pb("pb.gh"); 
    while(getline(pb,line)){ 
    if (line.find(ds) != string::npos) {  
    deltemp=line; 
    continue; 
     } 
     else{ 
      fstream pbtemp("pbtemp.gh",ios::app); 
      pbtemp<<line<<endl; 
     } 

    } 
    cout<<deltemp<<" was successfully deleted !"; 
    }  

bptemp.gh bir tane silinmiş ama hiçbir şey remove("pb.gh") yapmaz: Burada benim silmek bölüm kodu! ifstream pb("pb.gh");'un fstream pb("pb.gh");'a değiştirilmesinin yardımcı olacağını düşündüm ama bunu yaptıktan sonra "pbtemp.gh" oluşturulmayacak! Lütfen "pb.gh" öğesini kaldırmama ve "pbtemp.gh" yi "pb.gh" olarak değiştirmeme yardım edin. Saygılar

+0

Tahminimce, dosyayı "pb" ile açık tutulurken silmeye çalışıyorsunuz. İlk önce akışı kapatın. –

+2

C++, şu anda bir dosyayı silmek için herhangi bir standart yol sağlamaz. Ancak bir sonraki sürümde mevcut olmalıdır: http://en.cppreference.com/w/cpp/filesystem – NathanOliver

+0

@NathanOliver Ne hakkında 'remove()'? –

cevap

0

İlk olarak, (const char *) kaldır hata kodunu döndürür. Kontrol et ve ne olduğunu öğreneceksin. İkinci olarak, neden c işlevi yerine C++ kütüphanesi kullanmıyorsunuz? Destek dosyasına bir göz atın :: dosya sistemi (belki, C++ 16'ya dahil edilecektir)

İlgili konular