C++ Kullanıcıdan istenmeyen input almak

UmpaLumpalar

Centipat
Katılım
8 Ocak 2022
Mesajlar
72
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar. Kendimce bir sayı tahmin oyunu yapmaya çalıştım. Fakat birkaç sorunum var ve bu sorunları bir türlü çözemedim. En önemlisi: Rastgele bir sayı üretiliyor (1-100 arasında) ve kullanıcıdan bir tahmin alınıyor. Bu tahmin 1'den küçük, 100'den büyük veya sayı olmayan bir ifade girildiği zaman ne yapılması gerektiği. If döngümde bunu nasıl beyan etmeliyim? 1'den küçük olsa ve 100'den büyük olmaması için if(tahmin > 100 || tahmin < 0) yaparım. Ama mesela bir karakter veya cümle girilmemesi için ne yapmam gerekiyor? Şimdiden teşekkürler.
 
Son düzenleyen: Moderatör:
Klavyene bağlı. PS2 klavyeler için, IRQ1 hattından gelen veriyi dinleyip onu kernel'deki hash table'a hash olarak vereceksin, ve o hash'e karşılık gelen karakteri ekranda bastıracaksın.
 
Soyle bir sey yapabilirsin versiyon olarak minimum c++11 kullan aksi halde hata alirsin.
C++:
#include <iostream>

int main() {

    int number;
  
    while(true) {

        std::string line;
        std::cout << "number:";
        std::getline(std::cin, line);

        try {

            number = std::stoi(line);
            if(number < 1 || number > 100) {
                throw 0;
            }
            break;

        } catch(int x) { std::cout << "1 ile 100 araliginda olmali!" << std::endl; }
            catch(...) { std::cout << "Sadece sayi olmali!" << std::endl; }
            
    }

    //basarili ise buradaki kodlari yurut.

}
 
Soyle bir sey yapabilirsin versiyon olarak minimum c++11 kullan aksi halde hata alirsin.
C++:
#include <iostream>

int main() {

    int number;
 
    while(true) {

        std::string line;
        std::cout << "number:";
        std::getline(std::cin, line);

        try {

            number = std::stoi(line);
            if(number < 1 || number > 100) {
                throw 0;
            }
            break;

        } catch(int x) { std::cout << "1 ile 100 araliginda olmali!" << std::endl; }
            catch(...) { std::cout << "Sadece sayi olmali!" << std::endl; }
           
    }

    //basarili ise buradaki kodlari yurut.

}
Çok çok teşekkür ederim. Sonunda...

Klavyene bağlı. PS2 klavyeler için, IRQ1 hattından gelen veriyi dinleyip onu kernel'deki hash table'a hash olarak vereceksin, ve o hash'e karşılık gelen karakteri ekranda bastıracaksın.
Dediklerini biraz araştırdım ve işime yarar birçok şey buldum. Cevabınız için teşekkür ederim.
 

Geri
Yukarı