folder Tahribat.com Forumları
linefolder C - C++
linefolder [C++] While Döngüsünden EOF İle Çıkış Sorunu



[C++] While Döngüsünden EOF İle Çıkış Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    #include<iostream>
    #include<locale>
    using namespace std;

    int main()
    {
        int i=0,parola=0;
        setlocale(LC_ALL,"TURKISH");
        do
        {
        cout<<"Parola: ";
        cin>>parola;
        if(parola==1991)
        {
            cout<<"doğru\n";
            break;
        }
        else
            cout<<"yanlış parola\n";
        }
        while((parola==getchar())!=EOF);
    }

    ------------------------------------

    Yazokulu ödevi için ufak bi hasta kayıt programı yazıcam aslında, menü olucak kayıt ekle kayıt sil gibisinden. while ile bu tarz bir döngü kurup içine switchle seçimleri yerleştiricem...deneme amaçlı bu kodları yazdım,ancak sorun şu; program çalışıyor,parola yanlışsa aynen sormaya devam,parola doğruysa döngüden çıkılıyor ama ben istiyorumki parolayı bilmiyosamda -1 yazıp döngüden çıkabileyim. eofun değeri -1 diye biliyorum,nerde yanlış yapıyorum?


    :)
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    edit: çok yanlış anlamışım


    since 2005 // tbt
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    wasd bunu yazdı:
    -----------------------------

    #include
    #include
    using namespace std;

    int main()
    {
        int i=0,parola=0;
        setlocale(LC_ALL,"TURKISH");
        do
        {
        cout<<"Parola: ";
        cin>>parola;
        if(parola==1991)
        {
            cout<<"doğru\n";
            break;
        }
        else
            cout<<"yanlış parola\n";
        }
        while((parola==getchar())!=EOF);
    }

    ------------------------------------

    Yazokulu ödevi için ufak bi hasta kayıt programı yazıcam aslında, menü olucak kayıt ekle kayıt sil gibisinden. while ile bu tarz bir döngü kurup içine switchle seçimleri yerleştiricem...deneme amaçlı bu kodları yazdım,ancak sorun şu; program çalışıyor,parola yanlışsa aynen sormaya devam,parola doğruysa döngüden çıkılıyor ama ben istiyorumki parolayı bilmiyosamda -1 yazıp döngüden çıkabileyim. eofun değeri -1 diye biliyorum,nerde yanlış yapıyorum?


    -----------------------------

    tamam fakat while in içinde yalnışın var gibi.

     

    demişsin ki   parola == getchar()   bu işlem TRUE veya FALSE döndürür veya 0 ya da 1.

    Ayrıca getchar() bir tane karakter alır, yani 1991 yazılmışşsa  1 alır, halbuki parola nın değeri 1991 ve sen char ın integer değeri ile sayıyı karşılaştırıyorsun yani a basılınca char olarak sayı değeri 65 idi sanırım. İŞlem böyle olunca   sen bir de != EOF yapıyorsun dönen true veya false sonuca :/

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    SpArK bunu yazdı:
    -----------------------------

     

    Yazokulu ödevi için ufak bi hasta kayıt programı yazıcam aslında, menü olucak kayıt ekle kayıt sil gibisinden. while ile bu tarz bir döngü kurup içine switchle seçimleri yerleştiricem...deneme amaçlı bu kodları yazdım,ancak sorun şu; program çalışıyor,parola yanlışsa aynen sormaya devam,parola doğruysa döngüden çıkılıyor ama ben istiyorumki parolayı bilmiyosamda -1 yazıp döngüden çıkabileyim. eofun değeri -1 diye biliyorum,nerde yanlış yapıyorum?


    -----------------------------

    tamam fakat while in içinde yalnışın var gibi.

     

    demişsin ki   parola == getchar()   bu işlem TRUE veya FALSE döndürür veya 0 ya da 1.

    Ayrıca getchar() bir tane karakter alır, yani 1991 yazılmışşsa  1 alır, halbuki parola nın değeri 1991 ve sen char ın integer değeri ile sayıyı karşılaştırıyorsun yani a basılınca char olarak sayı değeri 65 idi sanırım. İŞlem böyle olunca   sen bir de != EOF yapıyorsun dönen true veya false sonuca :/


    -----------------------------

    Evet hocam parolayı string olarak al


    since 2005 // tbt
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wh0
    wh0's avatar
    Kayıt Tarihi: 21/Temmuz/2008
    Homo

     

    #include<iostream>

    #include<locale>

    using namespace std;

     

    int main()

    {

        int i=0,parola=0;

        int validpassword;

        validpassword = 1991;

        do

        {

        cout<<"Parola: ";

        cin>>parola;

        if((parola==validpassword) ||(parola==-1))

        {

            cout<<"doğru\n";

            break;

        }

        else

            cout<<"yanlış parola\n";

        }

        while((parola!=validpassword));

    }

     


    🏴‍☠️Hi'dan gelen varır Who'ya, Hi'da onun adıdır Who'da...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Ya olay parola değil,

    ------------------

    [1]Kayıt ekle

    [2]Kayıt düzenle

    [3]Kayıt bul

    [4]Kayıt sil

    [5]Çıkış

    --------------------

    yazdırıcam ekrana,girilen rakama göre switch devreye girip işlem yapıcak,benim istediğim ordaki çıkışı sağlamak. Bu deitel'ın kitabında

    while((not=getchar())!=EOF) şeklinde yazılmış,ondan bu şekilde yazdım. Yani bu menü için sonsuz döngü tarzı bişey kurup girilen int değere göre döngüden çıkışı yaptırmam lazım. mesela konsola 5 değeri girilip entera basıldığında program kapansın istiyorum,nasıl yapabilirim?


    :)
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    wasd bunu yazdı:
    -----------------------------

    Ya olay parola değil,

    ------------------

    [1]Kayıt ekle

    [2]Kayıt düzenle

    [3]Kayıt bul

    [4]Kayıt sil

    [5]Çıkış

    --------------------

    yazdırıcam ekrana,girilen rakama göre switch devreye girip işlem yapıcak,benim istediğim ordaki çıkışı sağlamak. Bu deitel'ın kitabında

    while((not=getchar())!=EOF) şeklinde yazılmış,ondan bu şekilde yazdım. Yani bu menü için sonsuz döngü tarzı bişey kurup girilen int değere göre döngüden çıkışı yaptırmam lazım. mesela konsola 5 değeri girilip entera basıldığında program kapansın istiyorum,nasıl yapabilirim?


    -----------------------------

    case 5:

    cout<< "Program Kapandı.";

    return 0;

     

    case 5 i bu hale getirceksin hocam


    since 2005 // tbt
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ---------------------

    #include
    #include
    int main()
    {
        setlocale(LC_ALL,"TURKISH");
        int giris=0,cikis=5;
        while((giris!=cikis))
        {
        printf("      MENÜ\n----------------\n[1]Kayıt ekle\n[2]Kayıt düzenle\n[3]Kayıt sil\n[4]Kayıt bul\n[5]Çıkış\n");
        scanf("%d",giris);
        if(giris==cikis)
        {
            break;
        }
        else
            printf("Yanlış giriş");
        }
    }

    ------------------------

    şu şekilde yazıyorum ama hata veriyo,bi türlü çözemedim gitti :/


    :)
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    wasd bunu yazdı:
    -----------------------------

    ---------------------

    #include
    #include
    int main()
    {
        setlocale(LC_ALL,"TURKISH");
        int giris=0,cikis=5;
        while((giris!=cikis))
        {
        printf("      MENÜ\n----------------\n[1]Kayıt ekle\n[2]Kayıt düzenle\n[3]Kayıt sil\n[4]Kayıt bul\n[5]Çıkış\n");
        scanf("%d",&giris);
        if((giris==cikis) || (giris==EOF))
        {
            break;
        }
        else
            printf("Yanlış giriş");
        }
    }

    ------------------------

    şu şekilde yazıyorum ama hata veriyo,bi türlü çözemedim gitti :/


    -----------------------------

    hocam mantık hatası var mı bakmadım ama scanf de giris den önce & koyman gerekiyor


    since 2005 // tbt
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    manyaki bunu yazdı:
    -----------------------------

     

    hocam mantık hatası var mı bakmadım ama scanf de giris den önce & koyman gerekiyor


    -----------------------------

    hay anasını satayım ya :/ çok sağol :) bi c bi c++ kafam pelte oldu herşey birbirine girdi uykusuzlukla birleşince,sağolasın


    :)
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    Yok hocam ne demek. Ama C i tamamen bitirmeden C++ a geçmeni önermem pek hocam ya. Zaten c yi hallettikten sonra c++ ı çok daha rahat halledersin, karışık gidersen çok girer birbirine.


    since 2005 // tbt
Toplam Hit: 2803 Toplam Mesaj: 14