Şimdi Ara

C proglama Yardim

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
742
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar yazmiş oldugum program aslinda kolay metinin icerigini ekranda gösterecek ama..nedense farkli şeyler gösteriyor.. ;( hatam nerede veya dogrusu nedir yardimci olursaniz sevinirim...

    kodlar:


    #include <stdio.h>
    #include <conio.h>
    main()
    {
    char filename[100];
    double xx;
    int ii, kk;
    FILE *infile;
    printf("Enter the file name:");
    scanf("%s",&filename);
    infile=fopen(filename,"r");
    fscanf(infile,"%d",&ii);
    fscanf(infile, "%d %lf",&kk,&xx);
    fclose(infile);
    printf("ii=%d,kk=%d \n xx=%lf\n",ii,kk,xx);
    }



  • Merhaba,

    Hatan şu satırda:

    scanf("%s",&filename);

    %s parametresi, karakter dizisi olan String'in adresini parametre olarak bekler. filename olarak tanımladığın dizide zaten filename'in kendisi adrestir. &filename olarak parametre gönderdiğinde adresin adresini göndermeye çalışır. Onun için yukarıdaki satırı

    scanf("%s", filename);

    olarak değiştirirsen sorun ortadan kalkacaktır.

    Kolay gelsin...
  • quote:

    Orijinalden alıntı: therev

    Merhaba,

    Hatan şu satırda:

    scanf("%s",&filename);

    %s parametresi, karakter dizisi olan String'in adresini parametre olarak bekler. filename olarak tanımladığın dizide zaten filename'in kendisi adrestir. &filename olarak parametre gönderdiğinde adresin adresini göndermeye çalışır. Onun için yukarıdaki satırı

    scanf("%s", filename);

    olarak değiştirirsen sorun ortadan kalkacaktır.

    Kolay gelsin...

    denedim hocam ayni sorun olmuyor.. bi turluu ;( yine hata veriyor

    amac dosya adresini girecegim icindekileri ekranda gösterecek örn c:\alp.txt icindekini dedginiz gibi yaptim ama sorun ayni
  • quote:

    Orijinalden alıntı: alper1059

    quote:

    Orijinalden alıntı: therev

    Merhaba,

    Hatan şu satırda:

    scanf("%s",&filename);

    %s parametresi, karakter dizisi olan String'in adresini parametre olarak bekler. filename olarak tanımladığın dizide zaten filename'in kendisi adrestir. &filename olarak parametre gönderdiğinde adresin adresini göndermeye çalışır. Onun için yukarıdaki satırı

    scanf("%s", filename);

    olarak değiştirirsen sorun ortadan kalkacaktır.

    Kolay gelsin...

    denedim hocam ayni sorun olmuyor.. bi turluu ;( yine hata veriyor

    amac dosya adresini girecegim icindekileri ekranda gösterecek örn c:\alp.txt icindekini dedginiz gibi yaptim ama sorun ayni

    Aldığın hata mesajını yazabilir misin?




  • quote:

    Orijinalden alıntı: therev

    quote:

    Orijinalden alıntı: alper1059

    quote:

    Orijinalden alıntı: therev

    Merhaba,

    Hatan şu satırda:

    scanf("%s",&filename);

    %s parametresi, karakter dizisi olan String'in adresini parametre olarak bekler. filename olarak tanımladığın dizide zaten filename'in kendisi adrestir. &filename olarak parametre gönderdiğinde adresin adresini göndermeye çalışır. Onun için yukarıdaki satırı

    scanf("%s", filename);

    olarak değiştirirsen sorun ortadan kalkacaktır.

    Kolay gelsin...

    denedim hocam ayni sorun olmuyor.. bi turluu ;( yine hata veriyor

    amac dosya adresini girecegim icindekileri ekranda gösterecek örn c:\alp.txt icindekini dedginiz gibi yaptim ama sorun ayni

    Aldığın hata mesajını yazabilir misin?

    hocam resim ekliyorum

    https://store.donanimhaber.com/c5/59/c1/c559c1ec72d9398fbdb41f2524cb6756.jpghttps://store.donanimhaber.com/c5/59/c1/c559c1ec72d9398fbdb41f2524cb6756.jpghttps://store.donanimhaber.com/3f/05/86/3f05865ab1537fbb007b0de13d55e898.jpg
     C proglama Yardim C proglama Yardim




  • hocam text dosyasinda da

    adim soyadim numaram yaziyo c:\pc.txt altinda amac icinkileri ekranda göstermesi..... eksik veya hatami hala göremiyorum... veya nasil duzeltirim hala ugraşiyorum

    elektirk elektronik muh ögrencisiyim
     C proglama Yardim
  • quote:

    Orijinalden alıntı: alper1059

    hocam text dosyasinda da

    adim soyadim numaram yaziyo c:\pc.txt altinda amac icinkileri ekranda göstermesi..... eksik veya hatami hala göremiyorum... veya nasil duzeltirim hala ugraşiyorum

    elektirk elektronik muh ögrencisiyim
     C proglama Yardim

    @alper1059,

    .txt dosyasında ad soyad ve numara var demişsin fakat bunları dosyadan okurken int, int, double olarak alıyorsun. Bir karakter dizisinin adresini sayı olarak ve bir tam sayıyı küsüratlı sayı olarak almaya çalıştığın için ekranda kelime yerine sayı basılıyor, double tipi argüman da tam sayıyı argüman olarak kabul etmediği için default değeri olan 0.000000 basılıyor. Kodu aşağıdaki şekilde değiştirirsen dosyada yazılı olanları (eğer dediğin gibi "isim soyad numara" şeklindeyse) ekrana bastırtabilirsin:

     
    #include <stdio.h>

    int main()
    {
    char filename[100];
    char name[20], surname[20];
    int number;

    FILE *infile;
    printf("Enter the file name:");
    scanf("%s", filename);
    infile = fopen(filename,"r");
    fscanf(infile,"%s%s%d", name, surname, &number);
    fclose(infile);
    printf("\nName=%s, Surname=%s \nNumber=%d\n", name, surname, number);
    return 0;
    }


    Kolay gelsin...



    < Bu mesaj bu kişi tarafından değiştirildi therev -- 22 Kasım 2013; 15:38:19 >




  • quote:

    Orijinalden alıntı: therev

    quote:

    Orijinalden alıntı: alper1059

    hocam text dosyasinda da

    adim soyadim numaram yaziyo c:\pc.txt altinda amac icinkileri ekranda göstermesi..... eksik veya hatami hala göremiyorum... veya nasil duzeltirim hala ugraşiyorum

    elektirk elektronik muh ögrencisiyim
     C proglama Yardim

    @alper1059,

    .txt dosyasında ad soyad ve numara var demişsin fakat bunları dosyadan okurken int, int, double olarak alıyorsun. Bir karakter dizisinin adresini sayı olarak ve bir tam sayıyı küsüratlı sayı olarak almaya çalıştığın için ekranda kelime yerine sayı basılıyor, double tipi argüman da tam sayıyı argüman olarak kabul etmediği için default değeri olan 0.000000 basılıyor. Kodu aşağıdaki şekilde değiştirirsen dosyada yazılı olanları (eğer dediğin gibi "isim soyad numara" şeklindeyse) ekrana bastırtabilirsin:

     
    #include <stdio.h>

    int main()
    {
    char filename[100];
    char name[20], surname[20];
    int number;

    FILE *infile;
    printf("Enter the file name:");
    scanf("%s", filename);
    infile = fopen(filename,"r");
    fscanf(infile,"%s%s%d", name, surname, &number);
    fclose(infile);
    printf("\nName=%s, Surname=%s \nNumber=%d\n", name, surname, number);
    return 0;
    }


    Kolay gelsin...

    abi öncelikle yardim ettigin icin teşekkur ederim...dedigin progmai caliştirdim c:\pc.txt girdim abi sonra yine boş yani txt icindekileri göstermedi

    abi txt dosyasini icinde adim soyadim numaram vsvs gibi gibliler yer aliyo veya herhangi birşeyde olabliir amaca text dosyasinin icindekini ekranda yazdirmasi (üöğ harfleri yok ;)

    sizin verdiginiz programdada name surname number yaziyo sadece yani txt icindekiler yokk ;(




  • quote:

    Orijinalden alıntı: alper1059

    abi öncelikle yardim ettigin icin teşekkur ederim...dedigin progmai caliştirdim c:\pc.txt girdim abi sonra yine boş yani txt icindekileri göstermedi

    abi txt dosyasini icinde adim soyadim numaram vsvs gibi gibliler yer aliyo veya herhangi birşeyde olabliir amaca text dosyasinin icindekini ekranda yazdirmasi (üöğ harfleri yok ;)

    sizin verdiginiz programdada name surname number yaziyo sadece yani txt icindekiler yokk ;(



    Rica ederim, önemli değil fakat keşke soruyu ilk başta sorarken ne amaca hizmet edeceğini söyleseydin, ne sen beklerdin bu kadar, ne de ben boşuna bunları yazardım :) Yazdığın programda üç sayı almaya çalışmışsın ilk başta, sonra .txt dosyasının içinde ad, soyad ve numara var diyorsun, şimdi de dosyada herhangi bir şey olabilir diyorsun. Neyse acemiliğine veriyorum bunları :)

    Eğer bir text dosyasında ne var ne yok ekrana yazdırmak istiyorsan aşağıdaki kodu kullanabilirsin: (umarım isteğini bu sefer doğru söylemişsindir :)

    #include<stdio.h> 

    int main(void)
    {
    char filename[100];

    FILE *file;
    printf("Enter the file name:");
    scanf("%s", filename);

    file = fopen(filename, "r");
    if ( file != NULL ) /* Dosyayı açıp açamadığını kontrol ediyor */
    {
    char line[128]; /* 128'i büyütebilirsin. Burada 128 sayısı, bir satırdan okunacak karakter sayısıdır */
    while( fgets(line, 128, file) != NULL ) /* Dosyada okunacak bir karakter kalmayana kadar satır satır dosyayı okuyan döngü */
    {
    fputs (line, stdout); /* Dosyadan aldığı satırı ekrana yazar */
    }
    fclose (file);
    }
    else
    {
    perror(filename); /* Dosyayı açamamış ise hata mesajı döndürür*/
    }
    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi therev -- 22 Kasım 2013; 20:39:30 >




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