C Dosya Kopyalama

Serpenos

Kilopat
Katılım
15 Ağustos 2014
Mesajlar
3.257
Makaleler
2
Çözümler
5
Daha fazla  
Cinsiyet
Erkek
Profil Kapağı
1522193036
Merhaba 2 ödevim var.
1-Rastgele sayı üretip .txt uzantılı bir dosyaya yazdırmak.
2-Bu sayıları alıp başka bir .txt uzantılı dosyaya aralarındaki asalları bularak kopyalamak.

1. ödevi yaptım ama 2. ödevde çıktı olarak ekrana "-1" bastırılıyor sürekli. Yardımcı olur musunuz?
İlk ödevde "sayilar.txt" adlı bir klasör açtım. 2. ödevde de sayilar2'ye kopyalamaya çalışıyorum:

C:
#include <stdio.h>
int main(){
    FILE *dosya;
    FILE *dosya2;
    dosya=fopen("sayilar.txt","r");
    dosya2=fopen("sayilar2.txt","w");
    int sayi;
    if(dosya!=NULL){
        for(int i=0;i<1000;i++){
        sayi=fgetc(dosya);
        fprintf(dosya2,"%d, ",sayi);   
    }   
    }
    else{
    printf("Dosya Bulunamadi.");
    }
    fclose(dosya);
    fclose(dosya2);

}
 
C:
#include <stdio.h>

int main(){
    FILE *dosya;
    FILE *dosya2;
    dosya=fopen("sayilar.txt","r");
    dosya2=fopen("sayilar2.txt","w");
    int sayi;
    if(dosya!=NULL){
        while(!feof(dosya)) {
            sayi=fgetc(dosya);
            fprintf(dosya2, "%c, ", sayi);
        }  
    }
    else {
        printf("Dosya Bulunamadi.");
    }
    fclose(dosya);
    fclose(dosya2);
}
 
Hocam ben de benzer şekilde yaptım az önce kendim. Bir de ek olarak asal sayılardan seçmesini istiyorum. Şöyle yazdım ama boş klasör açıyor. Bakar mısınız bir?
C:
#include <stdio.h>
int main(){
    int sayi;
    FILE *dosya;
    FILE *dosya2;
    dosya=fopen("sayilar.txt","r");
    dosya2=fopen("sayilar2.txt","w");
    
    while(!feof(dosya)){
        fscanf(dosya,"%d ",&sayi);
         for(int i=2;i<sayi;i++){
             if (sayi%i==0){
                 fprintf(dosya2,"%d\n",sayi);
             }
            
         }
    
    }
    fclose(dosya);
    fclose(dosya2);
    return 0;
}
 
Hocam ben de benzer şekilde yaptım az önce kendim. Bir de ek olarak asal sayılardan seçmesini istiyorum. Şöyle yazdım ama boş klasör açıyor. Bakar mısınız bir?
C:
#include <stdio.h>
int main(){
    int sayi;
    FILE *dosya;
    FILE *dosya2;
    dosya=fopen("sayilar.txt","r");
    dosya2=fopen("sayilar2.txt","w");
   
    while(!feof(dosya)){
        fscanf(dosya,"%d ",&sayi);
         for(int i=2;i<sayi;i++){
             if (sayi%i==0){
                 fprintf(dosya2,"%d\n",sayi);
             }
           
         }
   
    }
    fclose(dosya);
    fclose(dosya2);
    return 0;
}

Bu programda sadece asal sayıların hesaplanmasında problem var. sayilar.txt´den sayilar2.txt´ye yazmasında bir problem yok ancak asal sayıları yanlış hesaplıyor. Sizin sayilar.txt´yi oluşturan programda hata var gibi görünüyor. Sizdeki sayilar.txt´nin içeriği nedir? Sayılar arasında virgül olmadığından ve boşluk karakteri bıraktığınızdan emin olun ya da sayilar.txt´yi oluşturan programı eklerseniz bir bakabilirim.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı