[Çözüldü] fgets ile dosyadan rastgele uzunlukta veri alma

Başlatan edge35, 24 Mayıs 2017 - 18:21:27

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

edge35

Bir C programı yazıyorum. Program dosyadan 5 tane veri alıyor. Bunlar sırasıyla "int ID","char isim[50]","int gün","int ay","int yıl". İsim boşluklu da olabileceği için fgets ile almam gerekiyor sanırsam. Fakat fgets için kaç veri alınacağı yazılıyor. Max sınır 50 fakat dosyadaki isimler 50 olmuyor, kimisi 15, kimisi 25. Fazladan alınca tarih kısmınıda isme alıyor, tarih bir şey alamıyor, random geliyor. Yardımcı olabilecek var mı?
Kod (Programdaki kodum) Seç
fscanf(dg_uye_goster, "%d",&uye_goster.SN);
fgets(uye_goster.isim ,50 ,dg_uye_goster);
fscanf(dg_uye_goster ,"%d.%d.%d" ,&uye_goster.kayit_tarihi.gun ,&uye_goster.kayit_tarihi.ay ,&uye_goster.kayit_tarihi.yil);

fprintf(stdout, "%d\t%s\t%d.%d.%d\n",uye_goster.SN ,uye_goster.isim ,uye_goster.kayit_tarihi.gun ,uye_goster.kayit_tarihi.ay ,uye_goster.kayit_tarihi.yil);

Kod (Dosyadaki veri) Seç
90701 Muhammed YILMAZ 21.5.2016
Kod (Programın verdiği) Seç
90101 Muhammed YILMAZ 21.5.2016
90702.0.1157113536


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

edge35

Bu haliyle çözüm bulamadım. Ben de tarih ve isimin yerini değiştirdim. İsim sonda olunca da fgets ile aldım veriyi. fgets satır sonuna gelince almayı bırakıyor.
Not: satır sonuna gelince almayı bırakıyor, fakat satır sonunu da (\n) alıyor.


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

semm


edge35

Alıntı yapılan: semm - 25 Mayıs 2017 - 20:51:39
şuraya bir bak birde bu sitede tüm sorunlarını aratabilirsin
https://stackoverflow.com/questions/16870485/how-can-i-read-an-input-string-of-unknown-length
Teşekkür ederim, siteyi biliyordum fakat ingilizce seviyom pek iyi olmadığı için bulamamıştım. "Unknow" aklıma hiç gelmemişti :D


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)