Şimdi Ara

Hanesi Belli Olmayan Dizi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
6
Cevap
0
Favori
130
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar. Ben kaç karakter girileceği belli olmayan string dizilerde boyut belirlemeden


    char *dizi;
    gets(dizi);
    yapıyor ve kendi compilerimde sorumsuz çalıştırıyordum maamafih bunun dizi sayısını girilene göre otomatik belirlediğini düşünüyordum. Ta ki başka derleyicilerde çalışmadığını görene dek. Sizce buna bir alternatif var mıdır?




  • #include <stdio.h>
    #include <stdlib.h>

    char * read_line(FILE *input)
    {
    char *line = (char *)malloc(sizeof(char));
    char c = fgetc(input);
    int size = 1;
    while((c != '
    ') && (c != EOF)){
    line[size-1] = c;
    size += 1;
    line = realloc(line , size);
    c = fgetc(input);
    }
    line[size-1] = '\0';
    return line;
    }

    int main(){
    char *line = read_line(stdin);

    printf("Okunan : %s " , line);

    return 0;
    }


    bkz: dinamik bellek yönetimi.



    < Bu mesaj bu kişi tarafından değiştirildi Joshualinekano -- 18 Mart 2019; 15:36:46 >
  • koddaki karakterlerden dolayı kod görüntüsü bozluyor forumda fonksiyona gistten ulaşabilirsin.https://gist.github.com/ygunduz/c4006e06783520e36ab8c3e091cb5364
  • Joshualinekano kullanıcısına yanıt
    Hocam öncelikle teşekkür ederim. Anladığım kadarıyla tek bir char oluşturup tek tek alarak her yeni eklemede bellek hücresini arttırdınız. Ama read_line ye giden FILE *input nedir tam anlayamadım.
  • Trespuanie T kullanıcısına yanıt
    File pointer dosyaya okuma yazma yapmak için kullanılır c dilinde. Fonksiyona stdin gönderiyoruz bu da file pointer tipindedir. Konsoldan dosyadan okuyormuş gibi okur. Bu fonksiyonu dosyayı satır satır okumak için de kullanabilirsin

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.