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.

Yeni konular

Geri
Yukarı