Aşağıdaki programım var:
int main(int argc, char *argv[])
{
int a, b;
char c1, c2;
printf("Enter something: ");
scanf("%d",&a); // line 1
printf("Enter other something: ");
scanf("%d", &b); // line 2
printf("Enter a char: ");
scanf("%c",&c1); // line 3
printf("Enter another char: ");
scanf("%c", &c2); // line 4
printf("Done"); // line 5
system("PAUSE");
return 0;
}
C kitabında okuduğum gibi, yazar scanf()arabellekte yeni bir satır karakteri bıraktığını, bu nedenle programın kullanıcının verileri girmesi için 4. satırda durmadığını, bunun yerine yeni satır karakterini c2'de sakladığını ve 5. satır.
Bu doğru mu?
Ancak, bu yalnızca charveri türlerinde mi olur ? Çünkü intveri türlerinde bu sorunu 1., 2., 3. satırlardaki gibi görmedim. Doğru mu?
fflush(stdin)çağrılmadan önce kullanılabileceği önerilirscanf(). Artıları ve eksileri ve bu yöntemin alternatifleri hakkında bir tartışma için lütfen Kullanmafflush(stdin)bölümünü okuyun (bu, Windows'ta az çok çalışır ve diğer yerlerde işe yaramaz).