Sonsuz sayıda bilgi girişi ve hafızada yer ayırtma

Şimdiki örneğimizde sonsuz sayıda bilgi girişi nasıl yapıldığını inceleyeceğiz. malloc ve realloc fonksiyonları ile hafızada yer ayıracağız.

Klavyeden sonsuz döngü içinde sonsuz sayıda cümle girişi yapılabilecek, çıkılmak istendiğinde bir defa @ yazılacaktır. Programdan çıkıldıktan sonra girilen cümlelerdeki rakamlar ekrana yazılacaktır. Örneğin: Bugün pazardan 5 kilo elma aldım, 6 kilo portakal@
 
Çıktı:

5
6


#include <stdio.h>
#include <malloc.h>
#include <mem.h>

int main() {


    char ch;
    int rakam, i=0;
    char *cumle;

    cumle=(char*)malloc(sizeof(char));

    printf("Cumle giriniz:");

    while ((*(cumle+i)=getchar())!='@')
    {
        cumle=(char*)realloc(cumle,strlen(cumle)+sizeof(char));
        i++;
    }

    printf("\nGirilen cumle : %s\n",cumle);


    for(int k=0;k<strlen(cumle);k++){

        ch=cumle[k];

        if(ch>='0' && ch<='9') {
            rakam= ch-'0';
            printf("%d\t",rakam);
        }
    }


return 0;

}






Bu sayfada yer alan kodlar Jetbrains firmasının Clion IDE'si ile yazılmıştır, Eclipse veya Netbeans gibi IDE'ler kullanabilirsiniz. C++ derleyicisi olarak MinGW kullanılmaktadır. Başka C++ derleyicileri kullandığınızda bu kodlarda yer alan komutların bulunduğu kütüphaneler farklı olabilir. İlgili komutları kendi derleyicinizin dökümanlarına bakarak projenize dahil ettiğinizde çalışacaktır. 


Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2021

 
Bookmark and Share