folder Tahribat.com Forumları
linefolder C - C++
linefolder C'de İllegal Durumlar Hakkında Yardım..



C'de İllegal Durumlar Hakkında Yardım..

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KuZeTaR
    KuZeTaR's avatar
    Kayıt Tarihi: 26/Aralık/2009
    Erkek

    Merhaba arkadaşlar, ödevi bitirdim sadece illegal durumlar kaldı, şöyle ki;

    int a; olarak tanımladıktan sonra kullanıcı harf girerse kullanıcıdan tekrar değer isticek ya da ondalık bi değer girerse..

    şimdiden teşekkür ederim..

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ucenmi
    ucenmi's avatar
    Kayıt Tarihi: 25/Mayıs/2011
    Erkek

    do while yapısını kullanacaksın bu gibi durumlarda. gelen veriyi nasıl kontrol ediyorduk hatırlamıyorum c içinde hazır bir fonksiyon yoktu ama hatırladığım kadarıyla. sen googleda "c is number" diye arat çıkar bişiler

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KuZeTaR
    KuZeTaR's avatar
    Kayıt Tarihi: 26/Aralık/2009
    Erkek

    #include<stdio.h>

    #include<conio.h>

    main()

    {

    int a;

    printf("any value = ");

    scanf("%d",&a);

    while(a!=(int)a)

    {

    printf("any value again = ");

    scanf("%d",&a);

    }

    getch();

    }

     

    bu şekilde yaptım ama olmadı nedense, tavsiye için teşekkürler bakıyorum..

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sniperscope
    sniperscope's avatar
    Banlanmış Üye
    Kayıt Tarihi: 14/Mart/2009
    Erkek

    Soyle birsey olabilir.

     

    int a;

    a = scanf("%d", a);
    if(!isdigit(a))

    printf("illegal karakter girisi yaptiniz");


    "Yer yuzunde hic bir pislik yoktur ki; altindan bir yahudi cikmasin" Adolf Hitler... "Turkiye de hicbir pislik yokturki altindan cemaat cikmasin" SniperScope "Nerede yavşak, hırsız varsa hepsi Allahçı" Fazil Say
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ucenmi
    ucenmi's avatar
    Kayıt Tarihi: 25/Mayıs/2011
    Erkek
    #include<stdio.h>

    int main()
    {
       
    int v;
    int kontrol = 0;
    do{
       
    if(scanf("%d",&v)==1){
            kontrol = 1;

       
    }
        }
    while(kontrol==0)
    }

    bunu bir dene

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Sherlock.
    r10aldinho
    r10aldinho's avatar
    Kayıt Tarihi: 24/Eylül/2008
    Erkek
    sniperscope bunu yazdı

    Soyle birsey olabilir.

     

    int a;

    a = scanf("%d", a);
    if(!isdigit(a))

    printf("illegal karakter girisi yaptiniz");

    bu şekilde olmalı bencede yalnız kullanımı hatalı gibi geldi bana.

    isdigit komutunun kullanımına bakarsın


    İlk batışını ben gördüm güneşin, Gün dönümüne sen yetiştin, Kaptanı benim bu geminin, En son ben çıkarım, Panik etmeyin ___________________________________________________________ iletisim: www.tahribat.com@gmail.com
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KuZeTaR
    KuZeTaR's avatar
    Kayıt Tarihi: 26/Aralık/2009
    Erkek

    maalesef olmadı.. harf girince ve döngü olunca sonsuz döngüye giriyo program, if yapısı kullanınca çalışıyo ama sürekli değer alamıyorum..

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    oldwolf
    oldwolf's avatar
    Kayıt Tarihi: 02/Haziran/2002
    Erkek

    Bi ara ben de kafayı takmıştım o işe, yalnız şurada yanlışın var: a'yı int olarak tanımlayıp başlıyosun işe. Zaten int olarak tanımladığın için adam harf girince sorun çıkıyo. İlk başta adam ne girerse girsin programın çalışmayı durdurmaması için string alıp, aldığın string sayı mı harf vs. de içeriyo mu onu kontrol edip, sayı ise onu integer'a çevirmen gerekir. Integer string dönüşümlerinde atoi & itoa fonksiyonları sana yardımcı olur, sayı mı değil mi için de bir for döngüsü yazarsın kendin çok da zor değil.


    Metallica Rules
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sniperscope
    sniperscope's avatar
    Banlanmış Üye
    Kayıt Tarihi: 14/Mart/2009
    Erkek
    KuZeTaR bunu yazdı

    maalesef olmadı.. harf girince ve döngü olunca sonsuz döngüye giriyo program, if yapısı kullanınca çalışıyo ama sürekli değer alamıyorum..

    o zaman donguyude break ile sonlandir.

    Edit: Visual studio da denedim olmadi.

    sniperscope tarafından 25/Eki/12 01:36 tarihinde düzenlenmiştir

    "Yer yuzunde hic bir pislik yoktur ki; altindan bir yahudi cikmasin" Adolf Hitler... "Turkiye de hicbir pislik yokturki altindan cemaat cikmasin" SniperScope "Nerede yavşak, hırsız varsa hepsi Allahçı" Fazil Say
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    oldwolf
    oldwolf's avatar
    Kayıt Tarihi: 02/Haziran/2002
    Erkek

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    bool isint(char *str);

    int main(void)
    {
    int sayi;
    char s[10];
    bool issinteger;
    printf ("is integer? > ");
    gets(s);
    issinteger=isint(s);
    if (issinteger==true) printf ("sayi girdiniz\n");
    if (issinteger==false) printf ("karakter girdiniz\n");
    system ("PAUSE");
    }

    bool isint(char *str)
    {
    int i;
    bool isthereanycharacters=false;
    if (str[0]=='-')
    {
    for (i=1; i<strlen(str); i++)
    {
    if ( (int)(str[i]-48)<0 || (int)(str[i]-48)>9 ) {isthereanycharacters=true; break;}
    }
    if (isthereanycharacters==true) return false;
    if (isthereanycharacters==false) return true;
    }
    else
    {
    for (i=0; i<strlen(str); i++)
    {
    if ( (int)(str[i]-48)<0 || (int)(str[i]-48)>9 ) {isthereanycharacters=true; break;}
    }
    if (isthereanycharacters==true) return false;
    if (isthereanycharacters==false) return true;
    }
    }

    İlk karakter - ise negatif olduğunu da algılayan bi şeyler yazmışım şöyle, kurcala işine yarar belki.


    Metallica Rules
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KuZeTaR
    KuZeTaR's avatar
    Kayıt Tarihi: 26/Aralık/2009
    Erkek

    break kullanmak olabilir aslında ama if içinde break kullanılmıyo diye biliyorum, diğer kod için de çok teşekkür ederim algoritmalarını kullanarak bişeyler yazabilirm sanırım, hazır fonksiyon kullanmak yasak ve daha do-while ı göstermedikleri için kullanamıyorum :D switch-for-while ve if kullanmak serbest.. :))

Toplam Hit: 1846 Toplam Mesaj: 15