C++ File Operations
-
Elimde bi txt dosyası var ıcınde ogrencı notları var bunların not ortalamasını alıp baska txt ye nasıl yazarım
-
Şu iki linki bi incele takıldığın yer olursa yine burdan sorarsın, yardım eden illa ki çıkar.
-
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.
-
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
-
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; } -
Şü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;
}
