[Çözüldü] C derleyemiyorum?

Başlatan spider909, 19 Mayıs 2013 - 12:21:48

« önceki - sonraki »

0 Üyeler ve 6 Ziyaretçi konuyu incelemekte.

spider909

Merhaba arkadaşlar ben c derlemeye çalışıyorum ubuntu 13.04 ile. Yaptıklarım aşama aşama şunlar:
gedit de yazdığım kod:
#include<stdio.h>
#include<conio.h>
main(){int ara,final,ort;
char isim[10],soyad[10];

printf("Name: ");
scanf("%s",isim);
printf("Lastname: ");
scanf("%s",soyad);
printf("ara sinav notu: ");
scanf("%d", &ara);
printf("Final Notu: ");
scanf("%d",&final);
ort=((ara*30)/100)+((final*70)/100);
printf("__KARNE__\n%s %s \nortalama= %d",isim,soyad,ort);
if(ort>=60)
{printf("\ngecti");}
else
{
     
     printf("\nkaldi");}


getch();
}

bunu karne.c diye masaüstüne kaydediyorum. terminalde sırasıyla:
cagdas@cagdas-IdeaPad-Z585:~$ cd /home/cagdas/Desktop
cagdas@cagdas-IdeaPad-Z585:~/Desktop$ gcc karne.c
karne.c:2:18: fatal error: conio.h: No such file or directory
compilation terminated.

böyle bir şey çıkıyor karşıma?
I don't want to believe. I want to know. -Carl Sagan

siberoloji

conio.h standart kütüphanelerde bulunmaz.
onu silin ve curses.h kütüphanesini deneyin bence

spider909

Alıntı yapılan: korucu77 - 19 Mayıs 2013 - 13:03:37
conio.h standart kütüphanelerde bulunmaz.
onu silin ve curses.h kütüphanesini deneyin bence
windows da kullandığım kütüphaneleri burada kullnamayacak mıyım?
cagdas@cagdas-IdeaPad-Z585:~$ cd /home/cagdas/Desktop
cagdas@cagdas-IdeaPad-Z585:~/Desktop$ gcc karne.c
karne.c:2:19: fatal error: curses.h: No such file or directory
compilation terminated.

kütüphanelerin hepsini indirip koyayım. Çünkü okulda windows içinde kullanıyoruz. Nasıl yapabilirim?
I don't want to believe. I want to know. -Carl Sagan

siberoloji

sudo apt-get install build-essentialaskubuntu.com da bu komutu tavsiye edenler var.
ya da Ubuntu Yazılım merkezinde "c library" ifadelerini aratıp sol alt köşedeki "Teknik" detayları göster seçeneği işaretlediğiniz de bir çok kütüphaneye ulaşabilirsiniz.

freeman

conio.h başlık dosyasını Wİndows altında da kullanamazsınız. Yani şöyle; Turbo C entegre geliştirme ortamı yüklüyse, conio.h başlık dosyası da yükleniyor ve kullanılabiliyor. Ancak Dev-C++, Visual C++ gibi geliştirme ortamlarında conio.h başlık dosyası kullanılamıyor.Size tavsiyem, yanlış hatırlamıyorsam Ubuntu depolarında Dosbox programı vardı.(Şu an bakamıyorum ben.) Ubuntu 'ya kurun ve Dosboz içerisinden TurboC 'yi kullanın.
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.

travego0403

Yazdığın programda "conio.h" kullanmanı gerektirecek bir durum yok ya da ben göremedim. getch() fonksiyonu bu başlık dosyası içerisinde tanımlıdır. Bu fonksiyonuda muhtemelen program işini bitirdikten sonra kapanmasın diye koyuyorsundur programın sonuna. Linux altında uçbirimden programı çalıştırdığında program bittikten sonra uç birim kapanmayacaktır. Bu yüzden bu fonksiyonu kullanmana gerek yok. Zaten yukarıdaki problemi çözmek içinde böyle bir yöntemin kullanılması uygun görülmüyor.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

sem

getch bulunmuyordu Linux kütüphanelerinde =) Fakat gelende ekran kapanmasın diye kullanılıyor gerçekten. Aşağıdaki başlığı incelemekte fayda görüyorum.

http://forum.ubuntu-tr.net/index.php?topic=25839.5
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

0xdeadbeef

#7

#include <stdio.h>
//#include <conio.h>
main(){int ara,final,ort;
char isim[10],soyad[10];
printf("Name:");
scanf("%s",isim);
printf("Lastname:");
scanf("%s",soyad);
printf("ara sinav notu:");
scanf("%d",&ara);
printf("FinalNotu:");
scanf("%d",&final);
ort=
((ara*30)/100)+((final*70)/100);
printf("__KARNE__\n%s%s
\nortalama=
% d",isim,soyad,ort);
if(ort>=60)
{printf(" gecti\n");}
else
{
printf(" kaldi\n");}

}

Bu kodlari derlemeyi denermisin...
Bu sekilde derlenmesi gerekiyor.
($ gcc -o karne karne.c)
Cikti boyle olmasi lazim

Name:efe
Lastname:Kandemir
Ara sinav notu:80
Final notu:70
__KARNE__
Efe kandemir
Ortalama=73 gecti

Amac balik vermek degil, balik tutmasini ogretmek...

mami96

#8
Dış *bağlantı vermek doğrumu bilemem ama conio.h kutuphanesi icin;

http://www.volkanozkaragoz.com/linuxubuntu-ya-c-dili-icin-conio-h-kutuphanesini-eklemek/

Ayrıca if defined kullanımı ile de İşletim sistemini algılayıp ona göre gerekli kütüphaneleri ekletebilirsiniz bi örnek verecek olursak;

#if defined(_WIN64)
#include <conio.h>

#elif defined(_WIN32)
#include <conio.h>
 
#endif


gibi. Linux icin de


#if defined(__linux__)
//İŞLEM

#endif


Bak buyur kodu şöyle düzenledim


#if defined(_WIN64)
#include <conio.h>

#elif defined(_WIN32)
#include <conio.h>
 
#endif
#include<stdio.h>

main(){int ara,final,ort;
char isim[10],soyad[10];

printf("Name: ");
scanf("%s",isim);
printf("Lastname: ");
scanf("%s",soyad);
printf("ara sinav notu: ");
scanf("%d", &ara);
printf("Final Notu: ");
scanf("%d",&final);
ort=((ara*30)/100)+((final*70)/100);
printf("__KARNE__\n%s %s \nortalama= %d",isim,soyad,ort);
if(ort>=60)
{printf("\ngecti");}
else
{
     
     printf("\nkaldi");}



}


ve çıktı olarak da aldığım;


ali@ali:~/Masaüstü$ gcc -o a a.c
ali@ali:~/Masaüstü$ ./a
Name: Ali
Lastname: GOREN
ara sinav notu: 50
Final Notu: 60
__KARNE__
Ali GOREN
ortalama= 57



Son olarak __linux__ kullanarak da


#if defined(_WIN64)
#include <conio.h>

#elif defined(_WIN32)
#include <conio.h>
 
#endif
#include<stdio.h>

#if defined(__linux__)
main(){int ara,final,ort;
char isim[10],soyad[10];

printf("Name: ");
scanf("%s",isim);
printf("Lastname: ");
scanf("%s",soyad);
printf("ara sinav notu: ");
scanf("%d", &ara);
printf("Final Notu: ");
scanf("%d",&final);
ort=((ara*30)/100)+((final*70)/100);
printf("__KARNE__\n%s %s \nortalama= %d",isim,soyad,ort);
if(ort>=60)
{printf("\ngecti");}
else
{
     
     printf("\nkaldi");}



}
#endif



Şöyle * bir şey ürettim ve calisti. _WIN32 olarak dene istersen o Linux bolumunu :)

Yani burada yapilan sey sistemi algilayip gerekirse ona gore kodlar uretmek

Şu dediğimi derlersen herhangi bi hata almayacaksın


#if defined(_WIN64)
#include <conio.h>

#elif defined(_WIN32)
#include <conio.h>
 
#endif
#include<stdio.h>

#if defined(__linux__)
main(){

printf("HELLO WORLD");

}
#elif defined(_WIN32)
main(){

printf("HELLO WORLD");
getch();

}
#endif

spider909

Alıntı yapılan: l0n3w0lf - 20 Mayıs 2013 - 13:42:53

#include<stdio.h>
/*#include<conio.h>*/
main(){int ara,final,ort;
charisim[10],soyad[10];
printf("Name:");
scanf("%s",isim);
printf("Lastname:");
scanf("%s",soyad);
printf("arasinavnotu:");
scanf("%d",&ara);
printf("FinalNotu:");
scanf("%d",&final);
ort=
((ara*30)/100)+((final*70)/100);
printf("__KARNE__\n%s%s
\nortalama=
%d",isim,soyad,ort);
if(ort>=60)
{printf("gecti\n");}
else
{
printf("kaldi\n");}

}

Bu kodlari derlemeyi denermisin...
Bu sekilde derlenmesi gerekiyor.
($ gcc -o karne karne.c)
Cikti boyle olmasi lazim

Name:efe
Lastname:Kandemir
Ara sinav notu:80
Final notu:70
__KARNE__
Efe kandemir
Ortalama=73 gecti

bir kaç hata gösterdi:
cagdas@cagdas-IdeaPad-Z585:~/Desktop$ gcc -o not not.c
not.c: In function 'main':
not.c:4:1: error: 'charisim' undeclared (first use in this function)
not.c:4:1: note: each undeclared identifier is reported only once for each function it appears in
not.c:4:14: error: 'soyad' undeclared (first use in this function)
not.c:6:12: error: 'isim' undeclared (first use in this function)
not.c:15:8: warning: missing terminating " character [enabled by default]
not.c:15:1: error: missing terminating " character
not.c:16:1: error: stray '\' in program
not.c:16:2: error: 'nortalama' undeclared (first use in this function)
not.c:17:1: error: expected expression before '%' token
not.c:17:3: warning: missing terminating " character [enabled by default]
not.c:17:1: error: missing terminating " character
not.c:24:1: error: expected ';' before '}' token
I don't want to believe. I want to know. -Carl Sagan

freeman

Hata vermesi normal. Değişkenler ve fonksiyonlar tanımlanmamış...
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.

0xdeadbeef

#11
Kodlar dogru sadece editor programina kodlari kopyalarsaniz nerede yazim hatalari oldugunu gorebilirsiniz ve duzenlerseniz  sorunsuz derlenecektir..


Video ve kaynak kodlari telden yukledim. Asagidaki baglantidan video ve  kodlara ulasabilirsin...

Boyut:2.3 mb
Adres: http://s3.dosya.tc/server5/FMYNOn/not.zip.html
Amac balik vermek degil, balik tutmasini ogretmek...

spider909

Alıntı yapılan: l0n3w0lf - 20 Mayıs 2013 - 21:50:40
Kodlar dogru ancak sadece bosluklarda sorunlar var telefondan yazdigim icin kaynaklaniyor
Internet baglantimda sorun var altyapi ile ilgili
Video ve kaynak kodlari telden yukledim burdan video ve kaynak kodlara ulasabilirsin...
Adres:
Boyut:2.3 mb
http://s3.dosya.tc/server5/FMYNOn/not.zip.html
Peki teşekkür ederim.  :)
I don't want to believe. I want to know. -Carl Sagan

heartsmagic

Alıntı yapılan: mami96Dış *bağlantı vermek doğrumu bilemem ama ...
Yasal olduğu ve konuyu ilgilendirdiği sürece hiçbir sıkıntı olmaz. Kaynak göstermeden alıntı yapmayı desteklemiyoruz zaten.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

exclipit

Not: ben windows üzerinde dev-c++ ile conio.h kütüphanesini kullanmıştım bir ara.
Çalışan iki el, dua eden binlerce elden daha çok iş yapar. – Gene Roddenberry