Çözüldü C++ sondaki printf çalışmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

RbeD

Hectopat
Katılım
19 Mayıs 2020
Mesajlar
317
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar, sona bir printf ekledim. Uygulamanın içinden çalıştırdığımda o printf çalışıyor ama exe dosyasından çalıştırdığımda çalışmıyor. Kod burada (sondaki sonuç kısmından bahsediyorum)

eeeeEkran Alıntısı.PNG
 
Çözüm
@RbeD kapanmasının sebebi son printf'ten sonra başka yapacağı komut olmadığından return 0; çalışıyor ve bu satır ise uygulamanın 0 koduyla kapatılmasını yani normal bir şekilde çıkış yapmasını sağlıyor. Diğer arkadaşların söyledikleri ise veri girişi yapılırken giriş yapılana kadar beklemesinden dolayı çıkış komutunun bir üstüne veri girişi koyarsanız siz ENTER'a basana kadar yani boş da olsa bir veri gönderene kadar bekleyecektir. Daha sonra veri alındığı için bir sonraki komuta yani çıkış komutuna geçecektir. Eğer veriyi sadece okursanız ve veriyle işlem yapmazsanız bu yeterli olacaktır.

Eğer veri girişi vb. ile yapmak istemiyorsanız çıkış komutunun üstüne while(true){} eklemeniz yetecektir. Çünkü bu komutla uygulama sonsuz döngüye girecektir ve siz uygulamayı dışarıdan kapatmadığınız (IDE'den kapatmak ya da Görev Yöneticisi'nden görevi sonlandır yapmak) sürece öyle kalacaktır. Bunu kullanırsanız kapatmak için CTRL + C yapmanız yeterli olacaktır. CTRL + C kopyalamanın dışında konsolda çalışan bir uygulamayı sonlandırmaya da yarar.

CMD üzerinden başlatmak olarak bahsettikleri ise başlat menüsünden CMD penceresini açıp oraya exe konumunu yazarak başlatmak. Siz IDE içerisinden başlattığınızda CMD ile değil, konsol penceresi içerisinde açıyor.
.exe dosyasini direkt calistiriyorsan, sen o mesaji gormeden uygulama kapandigi icin calismiyor zannediyorsundur. cmd'yi kendin ac, uygulamanin oldugu dizine git, .exe dosyasinin adini yazarak baslat. Ayrica, C++'da printf kullanmana gerek yok.
Duzenleme: Ek olarak, sonuc degiskenini daha notlari almadan hesaplamissin. Notlar belli olmadigi icin hesaplaman mumkun degil. sonuc = ile baslayan satiri, en son scanf'in altina koy.
 
Kendine eziyet etmeninde bir sınırı olur. Birincisi "sonuc= 0*10" şuanda. Toplama işlemini printf'den hemen önce yapman lazım ki kullanıcı değerleri girdikten sonra yapsın. Ek olarak, niye on kere input isteyip 10 farklı değişken oluşturuyorsun ki? Hayır bunu yapmanın milyon tane yolu var. C++ kullanıyorsun, vector oluşturabilirsin, array oluşturabilirsin, tek değişkenin üzerine ekleyerek gidebilirsin. While, for, goto gibi loop döngülerini bir araştır. Bu şekilde yazmak sana eziyet.
 
sağolun :D daha yrni başladım sadece 1 tane değişken biliyrum .d
arkadaşl
sağolun :D daha yrni başladım sadece 1 tane değişken biliyrum .d
arkadaşlar herkes değişkenin yerinden olduğunu söylüyor ama ben onu düzelttim ve tekrar denedim aynı sorun devam ediyor printf yerine başka komut yazdım yine sondakini okumuyor
yani demek istediğim exe. dan çalıştırdığımda sondaki komut çalışmadan cmd kapanıyor
 
Son düzenleme:
sağolun :D daha yrni başladım sadece 1 tane değişken biliyrum .d
arkadaşl

arkadaşlar herkes değişkenin yerinden olduğunu söylüyor ama ben onu düzelttim ve tekrar denedim aynı sorun devam ediyor printf yerine başka komut yazdım yine sondakini okumuyor
Attigim mesaja dikkatli bakar misin?
.exe dosyasini direkt calistiriyorsan, sen o mesaji gormeden uygulama kapandigi icin calismiyor zannediyorsundur. cmd'yi kendin ac, uygulamanin oldugu dizine git, .exe dosyasinin adini yazarak baslat. Ayrica, C++'da printf kullanmana gerek yok.
Duzenleme: Ek olarak, sonuc degiskenini daha notlari almadan hesaplamissin. Notlar belli olmadigi icin hesaplaman mumkun degil. sonuc = ile baslayan satiri, en son scanf'in altina koy.

Ayrica, bu forumda yazim kurallarina uyman gerekiyor, yoksa ceza alabilirsin. Kurallari oku.
 
yani demek istediğim exe. dan çalıştırdığımda sondaki komut çalışmadan cmd kapanıyor
Atılan mesajları okumuyor musun? Eğer kapanmamasını istiyorsan, sona bir adet scanf yada cin ekleyeceksin yada CMD üzerinden çalıştıracaksın. @CinarYilmaz çoktan bahsetmişti bundan.
 
Bakın, burada sizden yardım istiyorum... ve siz beni tersliyorsunuz? Zaten exe cmd üzerinden başlatıyor, belki ben yanlış biliyorumdur diye tamamen exenin uzantısını değiştirdim ve sonuçta hiçbir değişiklik yok, ve sona neyin scanf ini ekleyeceğim? Eğer sonuc değişkeninden bahsediyorsanız onu çoktan düzelttim. Eğer bilmiyorsanız bilmiyorum diyin eğer biliyorsanız söyleyin 2 tarafta mutlu olsun, teşekkürler.
 
Artı -2 Eksi
Zaten exe cmd üzerinden başlatıyor, belki ben yanlış biliyorumdur
Hayır. CMD üzerinden başlatılmıyor.
sona neyin scanf ini ekleyeceğim?
Fark etmez. Sona scanf eklemek, kullanıcıdan bir girdi bekleteceği için programın kapanmasını önler.
Eğer bilmiyorsanız bilmiyorum diyin eğer biliyorsanız
Biliyoruz ve sana bildiğimiz şeyi de söyledik. Terslemiyoruz fakat okumadığın zaman tersleriz. Yazılanı okur, anlamazsan bunda kızacak bir şey yok. Sorarsın anlamadığın kısmı. Ama direkt okumadığın zaman burada babanın uşağı yok, sana bir şey öğretmek zorunda değiliz, yardım etmek istediğimiz için ediyoruz. Bir zahmet sende okursan iki tarafta yol alır.
 
@RbeD kapanmasının sebebi son printf'ten sonra başka yapacağı komut olmadığından return 0; çalışıyor ve bu satır ise uygulamanın 0 koduyla kapatılmasını yani normal bir şekilde çıkış yapmasını sağlıyor. Diğer arkadaşların söyledikleri ise veri girişi yapılırken giriş yapılana kadar beklemesinden dolayı çıkış komutunun bir üstüne veri girişi koyarsanız siz ENTER'a basana kadar yani boş da olsa bir veri gönderene kadar bekleyecektir. Daha sonra veri alındığı için bir sonraki komuta yani çıkış komutuna geçecektir. Eğer veriyi sadece okursanız ve veriyle işlem yapmazsanız bu yeterli olacaktır.

Eğer veri girişi vb. ile yapmak istemiyorsanız çıkış komutunun üstüne while(true){} eklemeniz yetecektir. Çünkü bu komutla uygulama sonsuz döngüye girecektir ve siz uygulamayı dışarıdan kapatmadığınız (IDE'den kapatmak ya da Görev Yöneticisi'nden görevi sonlandır yapmak) sürece öyle kalacaktır. Bunu kullanırsanız kapatmak için CTRL + C yapmanız yeterli olacaktır. CTRL + C kopyalamanın dışında konsolda çalışan bir uygulamayı sonlandırmaya da yarar.

CMD üzerinden başlatmak olarak bahsettikleri ise başlat menüsünden CMD penceresini açıp oraya exe konumunu yazarak başlatmak. Siz IDE içerisinden başlattığınızda CMD ile değil, konsol penceresi içerisinde açıyor.
 
Çözüm

Technopat Haberler

Geri
Yukarı