Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
8
Cevap
818
Tıklama
0
Öne Çıkarma
C proglama Yardim
A
12 yıl
Teğmen
Konu Sahibi

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);
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
12 yıl
Binbaşı

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...


Bu mesaja 1 cevap geldi.
A
12 yıl
Teğmen
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
T
12 yıl
Binbaşı

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?


Bu mesaja 1 cevap geldi.
A
12 yıl
Teğmen
Konu Sahibi

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
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
A
12 yıl
Teğmen
Konu Sahibi

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
< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
T
12 yıl
Binbaşı

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
< Resime gitmek için tıklayın >

@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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @alper1059
A
12 yıl
Teğmen
Konu Sahibi

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
< Resime gitmek için tıklayın >

@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 ;(


Bu mesaja 1 cevap geldi.
T
12 yıl
Binbaşı

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 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.