özetle, std::cin
sizin girdiğiniz input’u atanılacak değişkenin (no
) veri tipine (int
) çevirmeye çalışıyor çevirebildiği kadar, çeviremediğinde 0 döndürüyor (veya eskiden neyse o kalıyor, versiyona bağlı).
İlk örneğinizde 10 + 20
’nin soldan başlanarak 10
olan kısmı int’e çevrilip ilgili değişkene aktarılıyor.
İkinci örneğinizde ise "10 + 20"
'nin başındaki (en soldaki) "
karakteri yüzünden herhangi bir çevrilme işlemi gerçekleşemiyor; versiyonunuz c++11+ olsa gerek ki 0 atanıyor.
Bu input’ların henüz veri tipleri yok, çünkü programa aktarılmadılar daha siz yazarken. Ne zaman ki enter’a basıyorsunuz, bunlar “karakterler” olarak görülüp programa “akıyorlar” (streaming) ve istenen veri tipine (sizdeki int) çevrilmeye çalışıyorlar.