Şimdi Ara

file çağırma işlemi nasıl yapılır yawrdım lütfen

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
554
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • aslında yaptım, 2 warning werior ve program açıldığı an hata veriyor

    #include<stdio.h>

    int main()
    {

    FILE * p;
    FILE * pm;
    FILE * pf;
    int i=0,mid1,final,quiz;
    char sex,letter,name[20],numb[6];
    float grade;

    p = fopen("c:\\cmpe112\student.dat","r");
    pm = fopen("c:\\cmpe112\boy.dat","w");
    pf = fopen("c:\\cmpe112\girl.dat","w");

    do
    {
    fscanf(p,"%s",&numb);

    fscanf(p,"%s",&name);

    fscanf(p,"%s",&sex);

    fscanf(p,"%d",&mid1);

    fscanf(p,"%d",&final);
    fscanf(p,"%d",&quiz);


    grade=(mid1*((float)25/100))+(final*((float)60/100))+(quiz*((float)15/100));

    if(grade>90) { letter='A';}
    else if(grade>79) { letter='B';}
    else if(grade>59) { letter='C';}
    else if(grade>49) { letter='D';}
    else letter='F';

    printf("%s%s%3.1f%c\n",numb,name,grade,letter);

    if(sex=='M')fprintf(pm,"%s%s%3.1f%c\n",numb,name,grade,letter);
    if(sex=='F')fprintf(pf,"%s%s%3.1f%c\n",numb,name,grade,letter);

    i++;
    }while(i<10);
    fclose(p);
    fclose(pm);
    fclose(pf);

    return 0;

    }

    denilen yere klasor de açtım c:\cmpe112 diye ama gene çalışmadı







  • Hocam c hakkında hiçbir bilgim yok ama şimdi aklıma geldi belki c:\\cmpe112\ klasörüne yazma izni verilmesi gerekiyordur..
  • quote:

    Orjinalden alıntı: ANAFOR_

    aslında yaptım, 2 warning werior ve program açıldığı an hata veriyor

    #include<stdio.h>

    int main()
    {

    FILE * p;
    FILE * pm;
    FILE * pf;
    int i=0,mid1,final,quiz;
    char sex,letter,name[20],numb[6];
    float grade;

    p = fopen("c:\\cmpe112\student.dat","r");
    pm = fopen("c:\\cmpe112\boy.dat","w");
    pf = fopen("c:\\cmpe112\girl.dat","w");

    do
    {
    fscanf(p,"%s",&numb);

    fscanf(p,"%s",&name);

    fscanf(p,"%s",&sex);

    fscanf(p,"%d",&mid1);

    fscanf(p,"%d",&final);
    fscanf(p,"%d",&quiz);


    grade=(mid1*((float)25/100))+(final*((float)60/100))+(quiz*((float)15/100));

    if(grade>90) { letter='A';}
    else if(grade>79) { letter='B';}
    else if(grade>59) { letter='C';}
    else if(grade>49) { letter='D';}
    else letter='F';

    printf("%s%s%3.1f%c\n",numb,name,grade,letter);

    if(sex=='M')fprintf(pm,"%s%s%3.1f%c\n",numb,name,grade,letter);
    if(sex=='F')fprintf(pf,"%s%s%3.1f%c\n",numb,name,grade,letter);

    i++;
    }while(i<10);
    fclose(p);
    fclose(pm);
    fclose(pf);

    return 0;

    }

    denilen yere klasor de açtım c:\cmpe112 diye ama gene çalışmadı


    Hatırladığım kadarıyla fprintf,fscanf vs.. text dosyaları üzerinde işlem yapabiliyordu.Sizin .dat uzantılı binary dosyalarda fwrite,fread fonksiyonlarını kullanmalısınız.Ya da dosyaların uzantısını .txt olarak değiştirin.




  • C:\Documents and Settings\Fırat\Desktop\lab\1\Cpp1.cpp(13) : warning C4129: 's' : unrecognized character escape sequence
    C:\Documents and Settings\Fırat\Desktop\lab\1\Cpp1.cpp(15) : warning C4129: 'g' : unrecognized character escape sequence

    bu şeklde hata veriyor
  • p = fopen("c:\\cmpe112\\student.dat","r");
    pm = fopen("c:\\cmpe112\\boy.dat","w");
    pf = fopen("c:\\cmpe112\\girl.dat","w");


    dosya yolunda ters slash, yani '\' kullanman gerektiğinde ikişer tane koymalısın.
  • quote:

    Orjinalden alıntı: un.real

    p = fopen("c:\\cmpe112\\student.dat","r");
    pm = fopen("c:\\cmpe112\\boy.dat","w");
    pf = fopen("c:\\cmpe112\\girl.dat","w");


    dosya yolunda ters slash, yani '\' kullanman gerektiğinde ikişer tane koymalısın.


    ewt şimdi de çalıştı program ama sondaki ismi birkaç kere yazdı. neden acaba_?

    http://img299.imageshack.us/img299/4606/adszei1.jpg




  • onu da hallettim 10 tane yazmam gereliyormuş. kaydettiğim txtlere ayrı ayrı istediğim şekilde kaydetti. şimdi de notları hesaplama bi sıkıntı war resme bakın lütfen:

    http://img487.imageshack.us/img487/5663/321312321mm1.jpg
  • quote:

    Orjinalden alıntı: ANAFOR_

    onu da hallettim 10 tane yazmam gereliyormuş. kaydettiğim txtlere ayrı ayrı istediğim şekilde kaydetti. şimdi de notları hesaplama bi sıkıntı war resme bakın lütfen:

    http://img487.imageshack.us/img487/5663/321312321mm1.jpg


    if(sex=='F')fprintf(pf,"%s%s%3.1f%c\n",numb,name,grade,letter);


    integer seklinde alip string seklinde bastirmandan olmasin??
  • quote:

    Orjinalden alıntı: BrokenFighter


    quote:

    Orjinalden alıntı: ANAFOR_

    onu da hallettim 10 tane yazmam gereliyormuş. kaydettiğim txtlere ayrı ayrı istediğim şekilde kaydetti. şimdi de notları hesaplama bi sıkıntı war resme bakın lütfen:

    http://img487.imageshack.us/img487/5663/321312321mm1.jpg


    if(sex=='F')fprintf(pf,"%s%s%3.1f%c\n",numb,name,grade,letter);


    integer seklinde alip string seklinde bastirmandan olmasin??





    ewt tamam yaptım çok tşkler
    son hali bu
    #include<stdio.h>

    int main()
    {

    FILE * p;
    FILE * pm;
    FILE * pf;
    int i=0,mid1,final,quiz;
    char sex,letter,name[20],numb[6];
    float grade;

    p= fopen("c:\\cmpe112\\student.txt","r");
    pm = fopen("c:\\cmpe112\\boy.txt","w");
    pf = fopen("c:\\cmpe112\\girl.txt","w");

    do
    {
    fscanf(p,"%s",&numb);

    fscanf(p,"%s",&name);

    fscanf(p,"%s",&sex);

    fscanf(p,"%d",&mid1);

    fscanf(p,"%d",&final);
    fscanf(p,"%d",&quiz);


    grade=(mid1*((float)25/100))+(final*((float)60/100))+(quiz*((float)15/100));

    if(grade>90) { letter='A';}
    else if(grade>79) { letter='B';}
    else if(grade>59) { letter='C';}
    else if(grade>49) { letter='D';}
    else letter='F';

    printf("%s%s%3.1f%c\n",numb,name,grade,letter);

    if(sex=='M')fprintf(pm,"%s%s%f%c\n",numb,name,grade,letter);
    if(sex=='F')fprintf(pf,"%s%s%f%c\n",numb,name,grade,letter);

    i++;
    }while(i<10);
    fclose(p);
    fclose(pm);
    fclose(pf);

    return 0;

    }




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.