[Çözüldü] Bu kod neden çalışmıyor?

Başlatan Ali Osman, 17 Mart 2016 - 13:49:16

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Ali Osman

windows'ta sorunsuz çalışan bu c kodu linux'ta neden çalışmıyor?
Dosya adını yazamaya fırsat vermeden sonlanıyor.

#include <stdio.h>
void imzala();       void kopyala();

int main()
{
while(1)
    {
    int islem;
    printf("Dosya İmzala (1)\tDosya Kopyala   (2)\n");
    scanf("%d",&islem);
    fflush(stdin);
         if(islem==1){imzala();}
    else if(islem==2){kopyala();}

    }
}

void imzala()
{
    printf("Kaynak dosyanın ismini giriniz : ");
    char kaynakDosyaAdi[20];
    gets(kaynakDosyaAdi); //fgets(kaynakDosyaAdi,20,stdin); yaptım gene olmadı
    //.........//
}
void kopyala()
{
    char kaynakDosyaAdi[20];
    printf("Kaynak dosyanın ismini giriniz : ");
    gets(kaynakDosyaAdi);
    //................//
}

Erdem

fflush'ı kaldır onun yerine her scanf'ten sonra şu işlevi çağır.

void boslukTemizle(void)
{
    int k;
    do
    {
        k = getchar();
    } while (k != '\n' && k != EOF);
}
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

Ali Osman

Erdem hocam aynen çalıştı. Teşekkürler.