Sypro Mesaj tarihi: Nisan 21, 2011 Mesaj tarihi: Nisan 21, 2011 gcc ile deremeye çalıştığım bi kod var, while ( asd != EOF ) gibi bir kontrole ihtiyacım var. scanf ile aldığımda stringi yemiyor, gets ile denediğimde -artık kullanılmıyor sanırım- hata alıyorum, fgets meselesinin içinden çıkamadım -3 parametre falan- o da saçmalıyor. en iyi ihtimalle compile aşamasını geçiyoruz ama segmentation fault basıyor ekrana, en kötü ihtimalle compile etmiyor bile. bu işin yolu yordamı falan mı vardır anlamadım gitti. hiç işim olmadı eof ile -sphere hariç- dolayısıyla noob gibi hissettim kendimi xD halp.
Deacon Mesaj tarihi: Nisan 21, 2011 Mesaj tarihi: Nisan 21, 2011 fgets dosyadan okuyor. muhtemelen dosyaya olan linki yanlis yolladigindan seg fault aliosun. scanf ve gets ile dosyadan okuyamazsin. fscanf kullanman lazim. digerlerinde sorun nedir tam olarak soylersen yardimci olabilirim. eof'un tek olayi var, while(!feof(fp)) { fscanf(blabla) printf(blabla) } yaparsan sorun olur. eof karakterini islemis olursun. onun icin fscanf(blabla) while( !feof(fp)) { printf(blabla) fscanf(blabla) } yapman gerekiyor ki EOF karakteri islenmesin.
Sypro Mesaj tarihi: Nisan 21, 2011 Konuyu açan Mesaj tarihi: Nisan 21, 2011 sorun da o ya, dosyadan okumak istemiyorum :)
Deacon Mesaj tarihi: Nisan 21, 2011 Mesaj tarihi: Nisan 21, 2011 Hoh :p tam olarak ne yapmaya calisiosun? EOF gelene kadar deger almaya calisiosan mesela, soyle yapacaksin: while(scanf(blabla) != EOF)
Sypro Mesaj tarihi: Nisan 21, 2011 Konuyu açan Mesaj tarihi: Nisan 21, 2011 yapmaya çalıştığım şey şu: bir metin giriyorum -scanf, gets, fgets kısmı burada devreye giriyor. sonra metnin sonuna gelip gelmediğimi kontrol etmeye çalışıyorum -EOF kısmı da burada devreye giriyor. çünkü EOF karakteri denk gelmediği sürece çağırmam gereken bir fonksiyon var metni kelimelere ayıran. bunun dışında, fgets i stdin ile kullanmak için (gets gibi kullanmak yani) şöyle bir yöntem var: Prototype: char *fgets(char *s, int n, FILE *stream); s bildiğin string, n boyut, stream de stdin olarak verince dosyadan değil ekrandan okutabiliyorsun. sıkıntı çıkan kısım ise n kısmı. sanırım boyutu yanlış belirliyorum, o yüzden segmentation fault verip duruyor.
Deacon Mesaj tarihi: Nisan 21, 2011 Mesaj tarihi: Nisan 21, 2011 karakter karakter ilerliyorsan str[i ] != '' isini gorur. kelime kelime alicaksan scanf'i yukarda yazdigim gibi kullanabilirsin. fgets'i ile feof ile kontrol etmen gerekiyo. EOF'u bu sekilde kontrol edebiliosun her biri icin.
Sypro Mesaj tarihi: Nisan 21, 2011 Konuyu açan Mesaj tarihi: Nisan 21, 2011 feof aklıma gelmedi, ama kelime kelime almıyorum. tüm metni -atıyorum 1000 karakter uzunlukta- bir kerede alıyorum. kendim parçalıyorum.
Öne çıkan mesajlar