char = bir veri tipi olup bir karakterlik veriyi tutmak için kullanılır. Yani 8 bitlik(programlama diline göre değişebilir.) ve genel olarak klavyeden bilgi alınacağı zaman kullanılabilecek bir tipdir. Mesela "bu bilgi klavyeden girilmiştir" şeklinte bir metnimiz olsun. Bu metin içindeki herbir karakter bir byte'a denk gelir. b,u, (boşluk), b, i ... gidiyor.
get_line = enter tuşunu veya \n karakterini (aynı şey) görene kadar belirtilen kaynakdan metin bilgisi okumak için kullanılır. Klavye olabilir, dosya olabili, veya network kaynakları olabilir.
Neden char diziye ihtiyacın var?
Çünkü "bu bilgi klavyeden girilmiştir" metninde karakter sayısını topla 2+1+5+9+1+11 = 28 karakter ve metnin bitişini belirleyen gözle görünmeyen bir karakter daha var onunla beraber 29 karakter. Tek tek tutmak gerekirse char k1,k2,k3.. diye 29 tane tanımlamak gerekir mantıklı değil. Onun yerine
char metin[50]; diye bir tanımlama yapartan 50 karakterden oluşan bir metni bu diziye atayabilirsin. Bu tür bi dizinin diğer adı string oluyor(ilerleyen konular).
Sözümüze dönelim. klavyeden veya dosyadan bilgi okumak için get_line komutu kullanılabilir ve okuduğun bilgi bir char dizisine atılabilir.
Örnek kod
#include <stdio.h>
int main()
{
char char_dizi[50];
int okunan_karakterler;
puts ("Luften klavyeden giriş yapınız.");
okunan_karakterler = getline (char_dizi, 50, stdin);
if (okunan_karakterler == -1)
{
puts ("hata!!");
}
else
{
puts ("Girdiğiniz bilgi:");
puts (char_dizi);
}
return 0;
}