folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ File Operations



C++ File Operations

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bosluk
    Bosluk's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek

    Elimde bi txt dosyası var ıcınde ogrencı notları var bunların not ortalamasını alıp baska txt ye nasıl yazarım


    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Şu iki linki bi incele takıldığın yer olursa yine burdan sorarsın, yardım eden illa ki çıkar.


    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    Basit algoritma olarak FILE pointer kullanarak fscan ile oku.txt den notları çekeceksin. Çektiğin notları diziye atacaksın. Dizideki sayıların ortalamasını alıp fprintf ile yaz.txt e yazdıracaksın. FILE pointer, fscanf, fprintf terimlerini öğrenirsen rahatlıkla yapabilirsin.


    since 2005 // tbt
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bosluk
    Bosluk's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek

    manyaki bunu yazdı:
    -----------------------------

    Basit algoritma olarak FILE pointer kullanarak fscan ile oku.txt den notları çekeceksin. Çektiğin notları diziye atacaksın. Dizideki sayıların ortalamasını alıp fprintf ile yaz.txt e yazdıracaksın. FILE pointer, fscanf, fprintf terimlerini öğrenirsen rahatlıkla yapabilirsin.


    -----------------------------

    Bu algorıtmayı bende kurdum hocam faakt uyarlamada sıkıntı var 


    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    sana bu işi hiç dosya fonksiyonu kullanmadan yaptıracak bir trick :)

    notlar not.txt içinde, alt alta yazılmalı. sonuc ise ort.txt içinde olacak.  programı konsoldan şu şekilde çağıracaksın.

    prog.exe < not.txt > ort.txt

    kod:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    	char sayi[16] = {0};
    	int sonuc = 0,i;
    
    	for (i=0; gets(sayi); i++) {
    		sonuc += atoi(sayi);
    	}
    	printf("%d\n",sonuc/i);
    	return 0;
    }

    noktalı sayılarla çalışıyorsan dosyaya notları 55.6 formatında yaz, kodu şöyle değiştir.

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    	char sayi[16] = {0};
    	double sonuc = 0,i;
    
    	for (i=0; gets(sayi); i++) {
    		sonuc += atof(sayi);
    	}
    	printf("%lf\n",sonuc/i);
    	return 0;
    }
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bosluk
    Bosluk's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek

    Şükür sonunda , belki sizede lazım olur buyrun. Tugberk in kodu yanında garip kaldı ama yapcak bişe yok :)

    #include <cstdlib>

    #include <iostream>

    #define MAXSTUDENTS 100

    #include <math.h>

     

    using namespace std;

     

    int main(int argc, char *argv[])

    {

    int noot[MAXSTUDENTS], ogrencisayisi=0, i=0;

    float toplam=0.0, ortalama=0.0, std_sapma=0.0, mut_sapma=0.0, mut_sapma_top, std_sapma_top, varyans; 

    FILE *infile, *outfile;

     

     

     

    infile=fopen("D:\ornek.txt", "r");

    if(infile==NULL){

    cerr<<"giris dos acilamadi"<<endl;

    exit(EXIT_FAILURE); }

     

    ogrencisayisi=0;

    while(true){

    fscanf(infile, "%d", &noot[ogrencisayisi]);

    if (feof(infile)) 

    break;

    toplam=toplam+noot[ogrencisayisi];

    ogrencisayisi++; }

    fclose(infile); 

    ortalama=toplam/ogrencisayisi;

    for(i=0; i<ogrencisayisi; i++){

    std_sapma+=(noot[i]-ortalama)*(noot[i]-ortalama);

    mut_sapma+=fabs(noot[i]-ortalama);}

     

    varyans=std_sapma/(ogrencisayisi-1);

     

    std_sapma_top=sqrt(varyans);

     

    mut_sapma_top=mut_sapma/ogrencisayisi;

     

    outfile= fopen("D:\yaz.txt", "w");

    if(outfile==NULL){

    cerr<<"cikis dosyasi acilamadi"<<endl;

    exit(EXIT_FAILURE); }

     

    fprintf(outfile, "ogrenci sayisi : %d\n", ogrencisayisi);

    fprintf(outfile, "ortalama : %f\n", ortalama); 

    fprintf(outfile, "varyans : %f\n", varyans);

    fprintf(outfile, "standart sapma : %f\n", std_sapma_top);

    fprintf(outfile, "mutlak sapma : %f\n", mut_sapma_top);

    fclose(outfile); 

     

    system("PAUSE");

    return EXIT_SUCCESS;

    }

        

     


    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Toplam Hit: 1135 Toplam Mesaj: 6