Dizge Dönüşümlerinde Özdevimli Ayırma
Önceki Biçimli Girdi Sonraki
Dizge Dönüşümlerinde Özdevimli Ayırma
Bir GNU oluşumu biçimli girdi olarak bir uzunluk sınırı olmaksızın bir dizgeyi güvenli olarak okur. Bu özelliği kullandığınızda bir tampon ayırmanız gerekmez. scanf veriyi tutacak kadar büyüklükte tamponu kendi ayırır ve size onun adresini verir. Bu özelliği kullanmak için bir im karakteri olarak a karakterini %as olarak ya da %a[0-9a-z] olarak yazın.
Girdinin saklanacağı tamponun adresini tutacak gösterici argümanını char ** türünde sağlamalısınız. scanf işlevi bir tampon ayırır ve onun adresini bu argümanın gösterdiği yere kaydeder. Tampona ihtiyacınız kalmadığında free ile serbest bırakmalısınız.
Bu örnekte %[…] belirteci a imi ile birlikte kullanılarak değişken = değer çifti halinde bir "değişken ataması" okunmaktadır.
{
  char *degisken, *deger;

  if (2 > scanf ("%a[a-zA-Z0-9] = %a[^\n]\n",
                      &degisken, &deger))
  {
    invalid_input_error ();
    return 0;
  }

  …
}
Önceki Üst Ana Başlık Sonraki
Dizgeler için Girdi Dönüşümleri Başlangıç Diğer Girdi Dönüşümleri
Bir Linux Kitaplığı Sayfası